Maison > développement back-end > tutoriel php > Introduction détaillée à l'apprentissage de base des scripts shell Linux (4)

Introduction détaillée à l'apprentissage de base des scripts shell Linux (4)

黄舟
Libérer: 2023-03-05 11:42:01
original
1701 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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'
Copier après la connexion

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'
Copier après la connexion

Le résultat courant est :

/bin/bash
/bin/bash
$SHELL
Copier après la connexion

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
Copier après la connexion

Cela affichera :

*.jpg
$SHELL
Copier après la connexion

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) !


Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal