2012-07-24 103 views
0

我將參數從Java程序傳遞到shell腳本,我在shell腳本中使用環境變量來接收參數。通過使用$ 9,我可以獲得參數,直到9。但是,如果我獲得第10個參數,則會出現錯誤。我使用$ {10}來獲取第10個參數的輸入。我在哪裏錯了。表示環境變量10

+0

你得到的**確切錯誤**消息是什麼? – Jens 2012-07-24 10:07:04

回答

1

我不確定${10}的格式,雖然它看起來很明智。但是,您可以使用shift內置函數重用$1。像這樣的東西。

#!/bin/sh 

a=$1 
shift 
b=$1 

echo "$a:$b" 

你可以像這樣運行它。

[email protected]arium% ~/foo.sh Hello Goodbye 
Hello:Goodbye 
+0

謝謝你的答覆。但我傳遞了大約15個參數給shell,所以$ 1可能代表我發送儀式的第一個參數 – NandaKumar 2012-07-24 09:19:12

+0

是的,但順序是相關的不是嗎?因此,您可以放置​​一個塊,獲取該值,然後在處理開始之前對所有15個值重複進行移位。 – 2012-07-24 11:00:47

+0

如果你有不平凡的參數傳遞,你應該使用'getopts'。 – 2012-07-24 11:01:22