2010-06-24 51 views

回答

8

如果它是一個單一的參數,你使用$1(和$2等,$0是腳本名稱)。然後,獲取您使用的所有參數[email protected]

4

通過訪問$0$9$0是腳本名稱)。或者,$*返回全部參數的列表。

如果您要訪問的參數此起彼伏,或者,如果您要訪問超越第九參數,可以shift參數:

echo $1 
shift 
echo $1 

當這樣調用:

./script.sh foo bar 

將產生:

foo 
bar 
+0

只是好奇,如何得到第10個參數? – user198729 2010-06-24 14:00:33

+0

@ user198729:呃......我的回答沒有解釋過嗎?你「移動」參數。 – 2010-06-24 14:04:51

+0

那麼沒有通用的解決方案?如果我想獲得第100個參數,該怎麼辦...... – user198729 2010-06-24 14:07:51

0

echo「$ @」;打印所有參數

1

通過$ NUM訪問每個參數,其中NUM是您希望訪問的參數的數量。 $ 0是一個特殊的參數,指示腳本的名稱。 $#返回參數的數量。

test.sh alpha beta gamma 
echo $0 
echo $1 
echo $2 
echo $3 
echo $# 

會給

test.sh 
alpha 
beta 
gamma 
3 

See here

0

您還可以使用shift 「移動」 通過參數。 $1包含第一個參數。如果您致電shift,則第二個參數將「移位」爲$1,依此類推。

0

至少在bash中,你可以做以下任一訪問任何參數,包括10及以後:

echo "${10}" 
echo "${@:10:1}" 

遍歷所有參數:

for arg 
do 
    echo "$arg" 
done 

這形式意味着for arg in "[email protected]"