我需要在 myscript.sh 中传递一个包含空格作为选项的字符串值。代码如下所示:
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
有什么建议么?谢谢!