


Les scripts bash gèrent les paramètres de ligne de commande via des variables spéciales. Utilisez 1 $, 2 $, etc. pour obtenir des paramètres de position, où 0 $ représente le nom du script; iterates via "$ @" ou "$ *", le premier conserve la séparation de l'espace, et le second est fusionné en une seule cha?ne; Utilisez GetOpts pour analyser les options avec des paramètres (tels que -a, -b: valeur), où l'option est ajoutée pour indiquer la valeur du paramètre; Dans le même temps, faites attention à la référence aux variables, à l'utilisation de Shift pour déplacer la liste des paramètres et à obtenir le nombre total de paramètres via $ #.
Gestion des arguments de ligne de commande dans Bash peut sembler un peu délicat si vous êtes nouveau dans les scripts shell, mais une fois que vous comprenez les bases, cela devient assez simple. L'idée principale est que lorsque vous exécutez un script bash avec des arguments, ces valeurs sont automatiquement attribuées à des variables spéciales comme $1
, $2
, etc.
Voici comment vous pouvez travailler avec eux efficacement:
Utilisation de base: accéder aux arguments positionnels
Dans n'importe quel script bash, le premier argument que vous passez est stocké en $1
, le deuxième en $2
, etc. Par exemple:
#! / bin / bash Echo "Premier argument: 1 $" Echo "Deuxième argument: 2 $"
Si vous exécutez ce script comme ceci:
./script.sh Hello World
Il sortira:
Premier argument: Bonjour Deuxième argument: monde
C'est le moyen le plus élémentaire d'accéder aux arguments. Gardez simplement à l'esprit:
-
$0
fait référence au nom du script lui-même. - Si vous faites référence à un argument au-delà de ce qui a été fourni (comme
$4
lorsque seuls deux ont été donnés), il reviendra vide.
Gérer les arguments multiples ou inconnus avec $@
et $*
Parfois, vous ne savez pas combien d'arguments quelqu'un passera. Dans ces cas, $@
et $*
sont utiles.
Les deux représentent tous les arguments de position, mais se comportent légèrement différemment lorsqu'ils sont cités:
-
"$@"
traite chaque argument comme un mot distinct - idéal pour préserver les espaces en arguments. -
"$*"
traite tous les arguments comme un seul mot.
Voici une boucle simple en utilisant $@
pour imprimer tous les arguments:
pour arg dans "$ @" faire Echo "Argument: $ arg" fait
Essayez de le faire fonctionner avec:
./Script.sh Apple Banana "Pear Orange"
Vous obtiendrez:
Argument: Apple Argument: banane Argument: poire orange
Cette méthode est particulièrement utile lors de la rédaction de scripts qui doivent gérer la saisie des utilisateurs flexibles.
Utilisation getopts
pour les options d'analyse et les drapeaux
Si votre script doit accepter des options comme -a
, -b
ou même combinées comme -abc
, getopts
est votre meilleur pari.
Voici un exemple rapide:
tandis que Getopts "AB: C" Opt; faire Case $ opt dans un) Echo "Option -Une déclenché" ;; b) Echo "Option -B avec argument: $ optarg" ;; c) Echo "Option -C déclenché" ;; \?) Echo "Option non valide: - $ optarg" ;; ESAC fait
Exécutez-le comme ceci:
./script.sh -a -b valeur -c
Et vous verrez:
Option -Un déclenché Option -B avec argument: valeur Option -C déclenché
Quelques choses à noter:
- Le c?lon après
b
dans"ab:c"
signifie-b
attend un argument. -
OPTARG
détient la valeur d'une option qui en nécessite une. -
getopts
arrête le traitement au premier argument non optionnel.
Quelques conseils et gotchas
Il y a quelques petits détails qui peuvent vous faire trébucher:
- Citez toujours vos variables (
"$1"
,"$@"
) pour éviter les problèmes avec les espaces dans les noms de fichiers ou les chemins. - Utilisez
shift
pour passer par les arguments si vous avez affaire à une entrée de longueur variable. - Vous pouvez vérifier le nombre d'arguments passés en utilisant
$#
.
Par exemple:
Echo "Nombre d'arguments: $ #"
N'oubliez pas non plus que Bash ne prend pas en charge les options longues (comme --option
) nativement. Vous devrez gérer ces outils manuellement ou utiliser des outils comme getopt
(pas getopts
).
C'est essentiellement ?a. Ce n'est pas compliqué une fois que vous vous y êtes habitué, mais facile à gacher si vous négligez les numéros de citation ou d'index.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les étapes pour installer Docker incluent la mise à jour du système et l'installation de dépendances, l'ajout de clés et de référentiels GPG, d'installer le moteur Docker, de configurer les autorisations utilisateur et de tester l'exécution. 1. Exécutez d'abord SudoaptupDate et SudoaptupTrade pour mettre à jour le système; 2. Installez apt-transport-https, ca-certificats et autres packages de dépendance; 3. Ajouter la clé GPG officielle et configurer la source d'entrep?t; 4. Exécutez SudoaptInstall pour installer Docker-Ce, Docker-Ce-Cli et Containerd.io; 5. Ajoutez l'utilisateur au groupe Docker pour éviter d'utiliser Sudo; 6. Enfin, le quai

L'ajustement des paramètres du noyau (SYSCTL) peut optimiser efficacement les performances du système, améliorer le débit du réseau et améliorer la sécurité. 1. Connexion réseau: Activez Net.IPV4.TCP_TW_REUSE pour réutiliser la connexion Time-Wait pour éviter d'activer TCP_TW_RECYCLE dans l'environnement NAT; Abaissez de manière appropriée net.ipv4.tcp_fin_timeout à 15 à 30 secondes pour accélérer la version des ressources; ajustez net.core.somaxconn et net.ipv4.tcp_max_syn_backlog en fonction de la charge pour faire face au problème de la file d'attente de connexion complète. 2. Gestion de la mémoire: Réduisez VM.Swappiness à environ 10 pour réduire

Pour redémarrer le service géré par SystemCTL dans Linux, 1. Utilisez d'abord le nom du service SystemCTlStatus pour vérifier l'état et confirmer s'il est nécessaire de redémarrer; 2. Utilisez la commande SudosystemctlRestart Service Name pour redémarrer le service et assurez-vous qu'il existe des privilèges d'administrateur; 3. Si le redémarrage échoue, vous pouvez vérifier si le nom du service est correct, si le fichier de configuration est mauvais ou si le service est installé avec succès; 4. Le dépannage supplémentaire peut être résolu en affichant le nom du service LOG JournalCTL-U, en arrêtant et en démarrant d'abord le service, ou en essayant de recharger la configuration.

Les scripts bash gèrent les paramètres de ligne de commande via des variables spéciales. Utilisez 1 $, 2 $, etc. pour obtenir des paramètres de position, où 0 $ représente le nom du script; iterates via "$ @" ou "$ *", le premier conserve la séparation de l'espace, et le second est fusionné en une seule cha?ne; Utilisez GetOpts pour analyser les options avec des paramètres (tels que -a, -b: valeur), où l'option est ajoutée pour indiquer la valeur du paramètre; Dans le même temps, faites attention à la référence aux variables, à l'utilisation de Shift pour déplacer la liste des paramètres et à obtenir le nombre total de paramètres via $ #.

La commande d'arrêt de Linux / MacOS peut être arrêtée, redémarrée et chronométré les opérations à travers les paramètres. 1. éteignez immédiatement la machine et utilisez les paramètres de Sudoshutdown ou -h / -p; 2. Utilisez le temps ou le point de temps spécifique pour l'arrêt, annulez l'utilisation de -c; 3. Utilisez les paramètres -r pour redémarrer, prendre en charge le redémarrage chronométré; 4. Faites attention à la nécessité des autorisations sudo, soyez prudent dans le fonctionnement à distance et évitez la perte de données.

Le ping est l'outil de base pour juger l'état de la connexion réseau. La méthode d'utilisation est la suivante: 1. Ouvrez l'outil de ligne de commande (CMD pour Windows, Terminal pour macOS / Linux); 2. Entrez la commande ping pour ajouter l'adresse cible, telle que Pingwww.example.com ou Ping8.8.8.8; 3. Vous pouvez ajouter des paramètres pour limiter le nombre de fois, tels que -n pour Windows et -C pour macOS / Linux. La réponse normale affiche du temps, la perte de paquets peut indiquer un problème de réseau, le délai d'expiration peut être causé par l'interception du pare-feu ou que l'h?te n'est pas en ligne, l'inaccessible invite une anomalie dans le réseau local, et si la résolution de noms de domaine échoue, le DNS doit être vérifié. Bien que pratique, certains serveurs bloquent les pings, qui peuvent être accessibles par les navigateurs ou TR

Le raid logiciel peut réaliser des réseaux de disques via les propres outils du système d'exploitation pour améliorer les performances ou la tolérance aux pannes. 1. Utilisez des outils MDADM pour créer et gérer des tableaux de raid sous Linux, y compris l'installation, la visualisation des disques durs, la création de tableaux, le formatage, le montage et l'enregistrement de la configuration; 2. Les fenêtres peuvent réaliser les fonctions de base de RAID0 et RAID1 à "Gestion des disques", telles que la création de nouveaux volumes de bande ou des volumes en miroir et du formatage; 3. Les notes comprennent l'ajout de disques de rechange chauds, la surveillance régulière de l'état, les risques de récupération des données élevés nécessitent une sauvegarde et les impacts des performances qui peuvent être causés par certains niveaux.

Pour afficher l'état des services dans le système Linux, 1. Utilisez SystemCTL pour afficher tout l'état du service, faites attention à l'unité et aux colonnes actives pour déterminer si le service est en cours d'exécution; 2. Utilisez SystemCTlStatus pour afficher l'état détaillé des services spécifiques, y compris l'état de l'opération, le résumé du PID et du journal; 3. Affichez les journaux de service via JournalCTL-U et localisez les problèmes en combinaison avec les paramètres -f, --sece ou -n; La gestion des problèmes courants comprend le démarrage du service, la vérification de la configuration, la vérification de la cause de l'accident et la configuration du démarrage. La ma?trise de ces commandes peut gérer et résoudre efficacement les problèmes de service.
