2009-03-03 3 views
8

У меня есть пакетный файл, как это:Как передать аргументы сценарию оболочки?

java temptable %1 %2 

Мне нужно эквивалентный скрипт для выше. Я передам аргументы сценарию оболочки и должен быть передан в соблазнительный.

+0

Вот статья, Как передать аргументы скрипта. Он охватывает большинство аргументов командной строки [Как передать аргументы сценарию оболочки] (http://bashscript.blogspot.com/2009/11/how-to-pass-arguments-to-shell-script.html) – 2009-11-17 21:42:36

ответ

17

Для Баш (который один оболочки, но, вероятно, самый распространенный в мире Linux), то эквивалент:

java temptable $1 $2 

при условии, что нет ни одного места в аргументах. Если есть пробелы, вы должны процитировать ваши аргументы:

java temptable "$1" "$2" 

Вы также можете сделать:

java temptable $* 

или:

java temptable "[email protected]" 

, если вы хотите, чтобы все параметры, передаваемые через (опять же, второй эквивалент цитирования каждого из параметров: «$ 1» «$ 2» «$ 3» ...).

+2

я бы предложил процитировать аргументы. – jdigital

+0

Выполнено, спасибо, @jd. – paxdiablo

+0

Это также справедливо для sh и всех производных оболочек, а не только 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 

Выход:

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