Latest web development tutorials

passage de paramètres Shell

Nous pouvons dans la mise en œuvre de Shell script pour passer des paramètres au script, le script prend les paramètres dans leformat suivant :$ n.n représente un nombre, 1 pour la première exécution du paramètre de script, 2 pour le deuxième paramètre pour exécuter le script, et ainsi de suite ......

Exemples

Les exemples suivants nous passons trois paramètres du script, et les sorties, où $ 0 est le nom du fichier à exécuter:

#!/bin/bash
# author:本教程
# url:www.w3big.com

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

Définir les autorisations exécutables pour le script et d'exécuter le script, la sortie se présente comme suit:

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

En outre, il existe plusieurs paramètres pour traiter les caractères spéciaux:

Gestion des paramètres explication
# $ Le nombre de paramètres transmis au script
$ * En une seule chaîne affiche tous les paramètres passés au script.
Tels que "$ *" avec "" "boîtier fermé, la forme de« $ 1 $ 2 ... $ n "sortie de tous les paramètres.
$$ Le nombre actuel processus d'identification de l'exécution du script
$! Enfin, un processus en cours d'exécution dans le numéro d'ID de fond
$ @ * $ Avec le même, mais lorsque vous utilisez des guillemets, et retourne chaque paramètre entre guillemets.
Tels que "$ @" avec "" "boîtier fermé, sous forme de" $ 1 "" $ 2 "..." $ n "sortie de tous les paramètres.
$ - Shell affiche l'option actuelle à utiliser, et définir la commande la même fonction.
$? Affiche l'état de sortie de la dernière commande. 0 indique une absence d'erreurs, ainsi que toute autre valeur indique une erreur.
#!/bin/bash
# author:本教程
# url:www.w3big.com

echo "Shell 传递参数实例!";
echo "第一个参数为:$1";

echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";

Exécuter le script, dont la sortie est la suivante:

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3

$ * Et $ @ différence:

  • Le même point: toutes les références à tous les paramètres.
  • Différences: seulement reflété entre guillemets. Supposons que le script est exécuté lors de l'écriture des trois paramètres 1,2,3 ,, "*" est équivalent à "123" (passer un paramètre), et "@" est équivalent à "1", "2", " 3 "(passé trois paramètres).
#!/bin/bash
# author:本教程
# url:www.w3big.com

echo "-- \$* 演示 ---"
for i in "$*"; do
    echo $i
done

echo "-- \$@ 演示 ---"
for i in "$@"; do
    echo $i
done

Exécuter le script, dont la sortie est la suivante:

$ chmod +x test.sh 
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3