


Comment traiter les arguments de ligne de commande dans Bash
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 à 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!

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 grâce à 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)

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.

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.

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.

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.

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

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

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

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
