2009-03-03 13 views
8

Mam plik wsadowy tak:Jak przekazywać argumenty do skryptu powłoki?

java temptable %1 %2 

muszę równoważne skrypt dla powyższych. Przekażę argumenty do skryptu powłoki i to powinno być przekazane, aby się kusić.

+0

Oto artykuł, Jak przekazywać argumenty do skryptu powłoki. Obejmuje on większość z argumentów wiersza poleceń o wartości [Jak przekazywać argumenty do skryptu powłoki] (http://bashscript.blogspot.com/2009/11/how-to-passarguments-to-shell-script.html) –

Odpowiedz

17

Dla bash (co jest jeden powłoki, ale chyba najbardziej powszechne w świecie Linuksa), odpowiednikiem jest:

java temptable $1 $2 

zakładając tam bez spacji w argumentach. Jeśli istnieją przestrzenie, należy przytoczyć swoje argumenty:

java temptable "$1" "$2" 

Można również zrobić:

java temptable $* 

lub:

java temptable "[email protected]" 

jeśli chcesz wszystkie parametry przekazane przez (ponownie, że drugi jest równoznaczny z przytaczaniem każdego z parametrów: "1 $" "2 $" "3 $" ...).

+2

Sugerowałbym cytowanie argumentów. – jdigital

+0

Sporządzono, dziękuję, @jd. – paxdiablo

+0

Jest to również poprawne dla sh i wszystkich pochodnych powłok, a nie tylko 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 

wyjściowa:

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