我知道“for loop”可用于遍历所有参数。但对于我的代码,我更喜欢
i = 1
if [ ${$i} == xx] ; then
xxx
fi
((iArg++))
if [ ${$i} == xx] ; then
xxx
fi
很明显,$ {$ i}无效。我该如何纠正?
我曾经使用
编写csh$argv[$i]
现在必须使用sh shell。谢谢你的帮助
答案 0 :(得分:5)
由于这种困难,通常使用$1
和shift
来完成参数解析。典型的循环可能如下所示:
while [ $# -gt 0 ]; do
case $1 in
-a) echo "-a"; shift 1;; # option with no argument
-b) echo "-b $2"; shift 2;; # option which takes argument, use $2
-c) echo "-c"; shift 1;;
esac
done
也就是说,间接变量名称的使用方式是!
,如:
${!i}