我需要傳遞一個字符串值myscript.sh 含有間隔爲選項的代碼如下所示:getopts的截斷參數值
while getopts "m:i:t:" OPTION
do
case $OPTION in
m)
M=$OPTARG
echo M: $M
;;
i)
I=$OPTARG
echo I: $I
;;
t)
T=$OPTARG
echo T: $T
;;
?)
usage
exit
;;
esac
done
,當我直接調用它的命令行上它工作得很好:
./myscript.sh -m 1 -i '0 1 2 3' -t '2142'
M: 1
I: 0 1 2 3
T: 2142
但是,我需要傳遞-i作爲字符串變量,我無法讓它工作。選項-i的字符串被截斷,選項-t甚至不會通過(可能是新行)。
I='0 1 2 3'
./myscript.sh -m 1 -i "'"$I"'" -t '2142'
M: 1
I: '0
I='0 1 2 3'
II="'"$(echo $I)"'"
./myscript.sh -m 1 -i $II -t '2142'
M: 1
I: '0
有什麼建議嗎?謝謝!
+1你說得對,我錯過了那個,嘿。我標記爲我被刪除,因爲它是錯誤的。 – jmq 2012-02-16 18:34:06
謝謝! (我真的認爲我試過....唉)很好的解釋。 – magicalo 2012-02-16 19:27:33
很高興能幫到你!聽起來就像你有良好的直覺,至少:如果你看到空間分裂的東西,這可能是一個引用問題。 – Cascabel 2012-02-16 20:13:58