Table des matières
Utilisation de base: accéder aux arguments positionnels
Gérer les arguments multiples ou inconnus avec $@ et $*
Utilisation getopts pour les options d'analyse et les drapeaux
Quelques conseils et gotchas
Maison Opération et maintenance exploitation et maintenance Linux Comment traiter les arguments de ligne de commande dans Bash

Comment traiter les arguments de ligne de commande dans Bash

Jul 13, 2025 am 12:02 AM

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 $ #.

Comment traiter les arguments de ligne de commande dans Bash

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 à gâcher 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Porce de variable PHP expliquée
1 Il y a quelques mois By 百草
Commentant le code en php
1 Il y a quelques mois By 百草
<🎜>: Grow A Garden - Guide complet des marchands itinérants
4 Il y a quelques semaines By Jack chen
Conseils pour écrire des commentaires PHP
1 Il y a quelques mois By 百草

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel PHP
1511
276
Comment vérifier les connexions réseau actives Comment vérifier les connexions réseau actives Jul 22, 2025 am 12:35 AM

Si vous souhaitez connaître la connexion réseau sur votre ordinateur actuel, vous pouvez le visualiser via l'outil de ligne de commande; Utilisez Netstat-ANO sur Windows pour afficher toutes les connexions et PID, utilisez SS-TULNP et LSOF-I-P pour obtenir des informations détaillées, et peut également être surveillée en temps réel via des outils d'interface graphique tels que Resource Monitor, Nethogs, etc.

Comment créer un groupe de volume LVM Comment créer un groupe de volume LVM Jul 21, 2025 am 12:55 AM

Pour créer un groupe de volume LVM, vous devez d'abord préparer un volume physique (PV), puis créer un VG. 1. Utilisez PVCreate pour initialiser le disque dur ou la partition en PV, tels que Pvcreate / Dev / SDB1; 2. Utilisez la commande VGcreate pour combiner un ou plusieurs PV en VG, tels que vgcreatemy_volume_group / dev / sdb1 / dev / sdc1; 3. Vous pouvez personnaliser la taille PE via le paramètre -s et utiliser VGDisplay pour afficher les informations; 4. Vous pouvez développer dynamiquement VG à l'avenir et ajouter un nouveau PV à l'aide de VGEXTEND; 5. Avant de supprimer VG, vous devez confirmer qu'il n'y a pas de LV et le supprimer avec VGremove.

Comment configurer le serveur NFS Comment configurer le serveur NFS Jul 17, 2025 am 12:53 AM

Les étapes pour configurer un serveur NFS sont les suivantes: 1. Installez le package NFS-UTILS ou NFS-Kernel-Server; 2. Démarrer et activer NFS-Server et RPC Services connexes; 3. Modifier / etc / exportations pour configurer les répertoires et autorisations partagés, tels que RW, RO, Sync, etc.; 4. Exécuter Exportfs-A et ouvrir le port de pare-feu; 5. Le client utilise la commande de montage pour monter ou configurer FSTAB pour réaliser un support automatique; Les problèmes courants incluent le contrôle de l'autorisation, le mappage d'identification, le service RPC qui n'est pas démarré et la configuration n'est pas rafraîchie et doit être vérifiée conjointement avec les journaux.

Comment gérer les variables d'environnement Comment gérer les variables d'environnement Jul 21, 2025 am 12:46 AM

La clé pour gérer les variables d'environnement est d'utiliser des fichiers .env pour gérer de manière centralisée, distinguer différentes configurations d'environnement, injecter des variables pendant le déploiement et éviter les informations sensibles à code dur. Les pratiques spécifiques incluent: 1. Utilisez des fichiers .env pour stocker des variables et les distinguer par l'environnement, tels que .env.development et .env.production, et ajouter .gitignore; 2. Utilisez Node_env et d'autres identifiants pour déterminer la configuration correspondante de l'environnement actuel à charger automatiquement; 3. Injecter des variables au niveau du système lors du déploiement des serveurs, des plates-formes Docker ou Cloud pour améliorer la sécurité; 4. Toutes les informations sensibles doivent être obtenues à partir des variables environnementales, la dénomination doit être claire et peut être gérée en combinaison avec des moyens de chiffrement ou des outils spéciaux.

Comment tracer le chemin du réseau à l'aide de Traceroute Comment tracer le chemin du réseau à l'aide de Traceroute Aug 02, 2025 am 12:23 AM

Lorsque vous rencontrez un problème avec une connexion réseau lente, Traceroute peut vous aider à localiser le goulot d'étranglement. Il s'agit d'un outil de ligne de commande qui affiche le chemin à travers lequel les paquets de données passent de votre ordinateur vers le serveur cible en envoyant des paquets de sonde et en enregistrant le temps de réponse de chaque étape. Comment l'utiliser est tracertexample.com sous Windows et TracerateExample.com sous macOS / Linux / Unix. Dans le résultat de sortie, chaque ligne représente un nœud intermédiaire, y compris le nombre de houblon, trois temps d'ircédiction et le nom d'hôte IP ou hôte correspondant; Si tous les sauts sont *, il peut s'agir de blocage du pare-feu ou de défaillance du réseau. Vérifiez le saut avec une rafale de retard pour déterminer l'emplacement du problème; Combiné avec plusieurs tests de nom de domaine, vous pouvez faire la distinction entre le général

Quels outils sont utilisés pour la surveillance Linux Quels outils sont utilisés pour la surveillance Linux Jul 21, 2025 am 12:08 AM

La surveillance Linux implique une variété d'outils, les outils de surveillance des performances du système incluent une visualisation en temps réel supérieur / HTOP de l'utilisation des ressources, VMSTAT affiche l'état de la mémoire virtuelle, IOSTAT détecte les goulots d'étranglement IO de disque et les données de performances historiques des enregistrements SAR. L'outil de surveillance des journaux comprend les journaux de services de filtrage de journal, les problèmes de noyau de débogage du DMESG, le cycle de vie du journal de gestion de Logrotate et les journaux de transfert centralisés RSYSLOG / SYSLOG-NG. En termes de surveillance du réseau, SS / NNSTAT vérifie l'état de la connexion, NMAP scans les ports ouverts, TCPDUmp capture l'analyse du trafic et IFTOP surveille l'utilisation de la bande passante. Des solutions de surveillance à distance telles que Nagios implémentent les alarmes personnalisées profondes, ZAB

Comment définir le nom d'hôte système Comment définir le nom d'hôte système Jul 26, 2025 am 12:48 AM

La méthode de modification du nom d'hôte du système varie d'un système d'exploitation au système d'exploitation, mais le processus global est simple et clair. Tout d'abord, vérifiez le nom d'hôte actuel, qui peut être visualisé via le nom d'hôte ou la commande hostNamectl; Deuxièmement, le nom d'hôte peut être temporairement modifié, Linux utilise SudohostNamenew-Hostname et MacOS utilise Sudoscutil-SethostNamenew-Hostname; Si vous devez le modifier en permanence, Linux doit modifier le fichier / etc / nom d'hôte et mettre à jour l'ancien nom d'hôte dans / etc / hôtes au nouveau nom, puis exécuter sudohostname-f / etc / hostname ou redémarrer pour appliquer les modifications; maco

Comment résoudre les problèmes de VLAN Comment résoudre les problèmes de VLAN Jul 26, 2025 am 01:30 AM

Pour résoudre les problèmes de VLAN, vous devez d'abord confirmer si la configuration est correcte, puis vérifier l'état de l'interface, le chemin de communication croisé et les impacts STP et ACL à leur tour. 1. Utilisez ShowvlanBrief pour confirmer si le VLAN existe et que le port est correct, et si le port de tronc permet au VLAN correspondant de passer; 2. Utilisez ShowInterFacesStatus et Showrunning-ConfigInterface pour vérifier si l'état de l'interface est en hausse et la configuration du mode; 3. Vérifiez si la connexion entre les commutateurs est du tronc et permet le même VLAN, et si la configuration de la sous-interface du périphérique de couche trois est précise; 4. Vérifiez si l'état STP du port est bloqué et vérifiez si l'ACL ou le VLAN privé limite le trafic. Cliquez sur cette logique

See all articles