2009-03-03 11 views
8

Ho un file batch come questo:Come posso passare argomenti allo script di shell?

java temptable %1 %2 

Ho bisogno lo script di shell equivalente per quanto sopra. Passerò gli argomenti allo script della shell e questo dovrebbe essere passato a temptable.

+0

Ecco un articolo, Come passare argomenti per uno script di shell. Riguarda la maggior parte degli argomenti della riga di comando [Come passare argomenti a uno script di shell] (http://bashscript.blogspot.com/2009/11/how-to-pass-arguments-to-shell-script.html) –

risposta

17

Per bash (che è uno shell, ma probabilmente il più comune nel mondo Linux), l'equivalente è:

java temptable $1 $2 

supponendo che non ci sono spazi negli argomenti. Se ci sono spazi, si dovrebbe citare il vostro argomenti:

java temptable "$1" "$2" 

È anche possibile fare:

java temptable $* 

o:

java temptable "[email protected]" 

se si desidera che tutti i parametri passati attraverso la (ancora una volta, che la seconda è equivalente alla citazione di ognuno dei parametri: "$ 1" "$ 2" "$ 3" ...).

+2

Suggerirei di citare gli argomenti. – jdigital

+0

Fatto, grazie, @jd. – paxdiablo

+0

Questo vale anche per sh e tutte le shell derivate, non solo bash (AFAIK) –

8
#!/bin/bash 
# Call this script with at least 3 parameters, for example 
# sh scriptname 1 2 3 
echo "first parameter is $1" 
echo "Second parameter is $2" 
echo "Third parameter is $3" 
exit 0 

uscita:

[[email protected] ~]# sh parameters.sh 47 9 34 
first parameter is 47 
Second parameter is 9 
Third parameter is 34