Latest web development tutorials

Shell Übergabe von Parametern

Wir können bei der Umsetzung der Shell - Skript Parameter an das Skript übergeben, nimmt das Skript Parameter imFormat: $ n.n für eine Zahl, 1 für die erste Ausführung des Skripts Parameter, 2 für den zweiten Parameter das Skript, und so weiter auszuführen ......

Beispiele

Die folgenden Beispiele geben wir drei Parameter an das Skript, und Ausgänge, wobei 0 $ ist der Name der Datei auszuführen:

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

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

Legen Sie ausführbare Berechtigungen für das Skript und führen Sie das Skript, ist die Ausgabe wie folgt:

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

Darüber hinaus gibt es mehrere Parameter Sonderzeichen zu behandeln:

Parameterverwaltung Erklärung
$ # Die Anzahl der übergebenen Parameter an das Skript
$ * In einem einzelnen String zeigt alle Parameter an das Skript übergeben.
als "$ *" Solche mit "" "eingeschlossen Fall die Form von" $ 1 $ 2 ... $ n "Ausgabe aller Parameter.
$$ Der aktuelle Prozess-ID-Nummer des Skripts läuft
$! Schließlich läuft ein Prozess im Hintergrund ID-Nummer
$ @ * $ Mit dem gleichen, aber wenn Sie Anführungszeichen verwenden, und die einzelnen Parameter in Anführungszeichen zurück.
"$ N" Ausgabe aller Parameter wie "$ @" mit "" "eingeschlossen Fall Form von" $ 1 "" $ 2 "....
$ - Shell zeigt die aktuelle Option, zu verwenden und den Befehlssatz die gleiche Funktion.
$? Zeigt Exit-Status des letzten Befehls. 0 gibt keine Fehler, und jeder andere Wert zeigt einen Fehler an.
#!/bin/bash
# author:本教程
# url:www.w3big.com

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

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

Führen Sie das Skript, ist die Ausgabe wie folgt:

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

$ * Und Differenz $ @:

  • Der gleiche Punkt: alle Verweise auf alle Parameter.
  • Unterschiede: nur in doppelten Anführungszeichen wider. Angenommen, das Skript ausgeführt wird, wenn die drei Parameter 1,2,3 Schreiben ,, "*" ist gleichbedeutend mit "123" (ein Parameter übergeben) und "@" ist äquivalent zu "1", "2", " 3 "(bestanden drei Parameter).
#!/bin/bash
# author:本教程
# url:www.w3big.com

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

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

Führen Sie das Skript, ist die Ausgabe wie folgt:

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