2009-03-03 4 views
8

Ich habe eine Batch-Datei wie folgt aus:Wie übergebe ich Argumente an Shell-Skript?

java temptable %1 %2 

Ich brauche das Äquivalent Shell-Skript für das oben. Ich werde die Argumente an das Shell-Skript übergeben und das sollte an verführerisch übergeben werden.

+0

Hier ist ein Artikel, wie Argumente an ein Shell-Skript zu übergeben. Es behandelt am meisten über Befehlszeilenargumente [Wie Argumente an ein Shell-Skript übergeben werden] (http://bashscript.blogspot.com/2009/11/how-to-pass-arguments-to-shell-script.html) –

Antwort

17

Für bash (die eine Schale, aber wahrscheinlich die am häufigsten in der Linux-Welt), das entspricht:

java temptable $1 $2 

vorausgesetzt, es in den Argumenten kein Leerzeichen ist. Wenn es Plätze sind, sollten Sie Ihre Argumente zitieren:

java temptable "$1" "$2" 

Sie können auch tun:

java temptable $* 

oder:

java temptable "[email protected]" 

, wenn Sie alle Parameter wollen durchlaufen (wieder, dass Die zweite entspricht der Angabe der einzelnen Parameter: "$ 1" "$ 2" "$ 3" ...).

+2

Ich würde vorschlagen, die Argumente zu zitieren. – jdigital

+0

Fertig, danke, @jd. – paxdiablo

+0

Das gilt auch für sh und alle abgeleiteten Shells, nicht nur 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 

Ausgang:

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