Latest web development tutorials

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