Dans l'article précédent sur l'étude de base des scripts shell Linux, nous avons parlé du if, de la sélection et du cas du processus de contrôle dans le script shell Linux. Nous présenterons ici la boucle et les guillemets du processus de contrôle du script shell. Script shell Linux. Il y a plus de contenu dans le processus de contrôle, et il y a aussi une partie du contenu qui concerne le document ici.
4.loop
expression de boucle :
while ...; do .... done
while-loop s'exécutera jusqu'à ce que le test d'expression soit vrai. s'exécutera tant que l'expression que nous testons est vraie.
Le mot-clé "break" est utilisé pour sortir de la boucle. Le mot-clé "continue" permet de passer directement à la boucle suivante sans exécuter la partie restante.
L'expression de la boucle for examine une liste de chaînes (chaînes séparées par des espaces) et l'assigne à une variable :
for var in ....; do .... done
Dans l'exemple suivant, ABC sera imprimé séparément pour l'écran :
#!/bin/sh for var in A B C ; do echo "var is $var" done
Voici un script showrpm plus utile, dont la fonction est d'imprimer quelques statistiques des packages RPM :
#!/bin/sh # list a content summary of a number of RPM packages # USAGE: showrpm rpmfile1 rpmfile2 ... # EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm for rpmpackage in $*; do if [ -r "$rpmpackage" ];then echo "=============== $rpmpackage ==============" rpm -qi -p $rpmpackage else echo "ERROR: cannot read file $rpmpackage" fi done
ici Une deuxième spéciale la variable $* apparaît, qui contient les valeurs de tous les paramètres de ligne de commande saisis.
Si vous exécutez showrpm openssh.rpm w3m.rpm webgrep.rpm
À ce moment, $* contient 3 chaînes, à savoir openssh.rpm, w3m.rpm et webgrep.rpm.
Citations
. Le programme développe les caractères génériques et les variables avant de transmettre des arguments au programme. La soi-disant expansion signifie ici que le programme remplacera les caractères génériques (tels que *) par des noms de fichiers appropriés et remplacera les autres variables par des valeurs de variable. Pour empêcher le programme d'effectuer cette substitution, vous pouvez utiliser des guillemets : Regardons un exemple, en supposant qu'il y ait des fichiers dans le répertoire courant, deux fichiers jpg, mail.jpg et tux.jpg.
1.2 Compilez le script SHELL
#ch#!/bin/sh mod x filename
cho *.jpg ∪瞅螅螵枙耄?./filename pour exécuter votre script.
Cela imprimera les résultats de "mail.jpg tux.jpg".
Les guillemets (simples et doubles) empêcheront cette extension de caractère générique :
#!/bin/sh echo "*.jpg" echo '*.jpg'
Cela imprimera "*.jpg" deux fois.
Les guillemets simples sont plus restrictifs. Il empêche toute expansion variable. Les guillemets doubles empêchent l’expansion des caractères génériques mais autorisent l’expansion des variables.
#!/bin/sh echo $SHELL echo "$SHELL" echo '$SHELL'
Le résultat courant est :
/bin/bash /bin/bash $SHELL
Enfin, il existe un autre moyen d'empêcher cette expansion, qui consiste à utiliser le caractère d'échappement-barre oblique inverse Rod :
echo *.jpg echo $SHELL
Cela affichera :
*.jpg $SHELL
Voilà pour les bases des scripts shell Linux, le flux de contrôle et un peu plus de contenu à partir d'ici documenter la prochaine fois. Analyser à nouveau.
Ce qui précède est une introduction détaillée à l'apprentissage de base des scripts shell Linux (IV). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !