parametri di passaggio Shell
Siamo in grado nella realizzazione di script di shell per passare parametri allo script, lo script prende parametri all'interno delformato: $ n.n rappresenta un numero, 1 per la prima esecuzione del parametro di script, 2 per il secondo parametro per eseguire lo script, ecc ......
Esempi
Gli esempi che seguono si passano tre parametri allo script, e le uscite, dove $ 0 è il nome del file da eseguire:
#!/bin/bash # author:本教程 # url:www.w3big.com echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3";
Impostare le autorizzazioni eseguibili allo script ed eseguire lo script, l'output è il seguente:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3
In aggiunta, ci sono diversi parametri per gestire i caratteri speciali:
la manipolazione dei parametri | spiegazione |
---|---|
$ # | Il numero di parametri passati allo script |
$ * | In una singola stringa di visualizzare tutti i parametri passati allo script. Come ad esempio "$ *" con "" "caso chiuso, sotto forma di" $ 1 $ 2 ... $ n "uscita di tutti i parametri. |
$$ | L'attuale numero di ID di processo dello script viene eseguito |
$! | Infine, un processo in esecuzione nel numero di sfondo ID |
$ @ | * $ Con la stessa, ma quando si utilizzano le virgolette, e ritorna ogni parametro tra virgolette. Come ad esempio "$ @" con "" "caso chiuso, sotto forma di" $ 1 "" $ 2 "..." $ n "uscita di tutti i parametri. |
$ - | Shell visualizza l'opzione corrente da usare, e impostare il comando la stessa funzione. |
$? | Consente di visualizzare lo stato di uscita dell'ultimo comando. 0 indica nessun errore, e qualsiasi altro valore indica un errore. |
#!/bin/bash # author:本教程 # url:www.w3big.com echo "Shell 传递参数实例!"; echo "第一个参数为:$1"; echo "参数个数为:$#"; echo "传递的参数作为一个字符串显示:$*";
Eseguire lo script, l'output è il seguente:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 第一个参数为:1 参数个数为:3 传递的参数作为一个字符串显示:1 2 3
$ * E la differenza $ @:
- Lo stesso punto: tutti i riferimenti a tutti i parametri.
- Differenze: riflette soltanto tra virgolette. Supponiamo che lo script viene eseguito quando si scrive i tre parametri 1,2,3 ,, "*" è equivalente a "123" (passare un parametro), e "@" è equivalente a "1", "2", " 3 "(passati tre parametri).
#!/bin/bash # author:本教程 # url:www.w3big.com echo "-- \$* 演示 ---" for i in "$*"; do echo $i done echo "-- \$@ 演示 ---" for i in "$@"; do echo $i done
Eseguire lo script, l'output è il seguente:
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* 演示 --- 1 2 3 -- $@ 演示 --- 1 2 3