English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Possiamo passare parametri allo script durante l'esecuzione del script di Shell, e il formato di acquisizione dei parametri all'interno dello script è:$n.n Rappresenta un numero, 1 è il primo parametro eseguito dallo script, 2 è il secondo parametro eseguito dallo script, ecc.
Nello esempio seguente passiamo tre parametri al script e li outputtiamo rispettivamente, tra cui $0 Il nome del file eseguito (compreso il percorso del file):
#!/bin/bash # author:教程基础 # url:it.oldtoolbag.com echo "Esempio di trasmissione parametri Shell!"; echo "Il nome del file eseguito: $0"; echo "Primo parametro: $1"; echo "Il secondo parametro è: $2"; echo "Il terzo parametro è: $3";
Imposta i permessi eseguibili per lo script e esegui lo script, i risultati di output sono come segue:
$ chmod +x test.sh $ ./test.sh 1 2 3 Esempio di trasmissione parametri Shell! Il nome del file eseguito: ./test.sh Primo parametro: 1 Il secondo parametro è: 2 Il terzo parametro è: 3
Inoltre, ci sono alcuni caratteri speciali utilizzati per elaborare i parametri:
Elaborazione dei parametri | Descrizione |
---|---|
$# | Numero di parametri passati al script |
$* | Mostra tutti i parametri passati al script come una singola stringa. Se "$*" è racchiuso tra virgolette, viene outputto in forma di "$1 $2 … $n". |
$$ | ID del processo corrente in esecuzione del script |
$! | ID del processo più recente in esecuzione in background |
$@ | Uguale a $*, ma con virgolette e ciascun parametro è restituito all'interno delle virgolette. Se "$@" è racchiuso tra virgolette, viene outputto in forma di "$1" "$2" … "$n". |
$- | Mostra le opzioni attualmente utilizzate da Shell, concomando setFunzione identica. |
$? | Mostra lo stato di uscita dell'ultimo comando. 0 indica l'assenza di errori, qualsiasi altro valore indica un errore. |
#!/bin/bash # author:教程基础 # url:it.oldtoolbag.com echo "Esempio di trasmissione parametri Shell!"; echo "Primo parametro: $1"; echo "Numero di parametri: $#"; echo "Visualizzazione dei parametri come una stringa: $*";
Esegui lo script, i risultati sono come segue:
$ chmod +x test.sh $ ./test.sh 1 2 3 Esempio di trasmissione parametri Shell! Primo parametro: 1 Numero di parametri: 3 Visualizzazione dei parametri come una stringa: 1 2 3
Differenza tra $* e $@:
Similitudini: entrambi citano tutti i parametri.
Differenze: si manifestano solo all'interno delle virgolette. Supponiamo che vengano scritti tre parametri durante l'esecuzione dello script 1, 2, 3, allora "*" è equivalente a "1 2 3" (passato un parametro), mentre "@" è equivalente a "1" "2" "3" (passati tre parametri).
#!/bin/bash # author:教程基础 # url:it.oldtoolbag.com echo "-- \$* dimostrazione ---" for i in "$*"; do echo $i fatto echo "-- \$@ dimostrazione ---" for i in "$@"; do echo $i fatto
Esegui lo script, i risultati sono come segue:
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* dimostrazione --- 1 2 3 -- $@ dimostrazione --- 1 2 3