如何呼应循环参数在bash
问题描述:
我应该以这种方式运行的bash:如何呼应循环参数在bash
./script.sh <arg1> <arg2> <arg3>...<argn>
我想表明我的bash这些ARGS:
<arg3> <arg4> ... <argn>
所以我写了这个bash:
for ((i=1; i<=$#-3; i++))
do
echo $((3+i))
done
但它显示了我参数的数量。
我怎样才能把#
为了看到我的真正的参数?
感谢
答
您可以将所有参数的BASH数组,然后使用它们用于以后的处理:
args=("[email protected]")
for ((i=2; i<${#args[@]}; i++))
do
echo "arg # $((i+1)) :: ${args[$i]}"
done
答
一个最小的解决方案,显示所需的参数,而不数学:
shift 2
for word
do
echo ${word}
done
答
如果你想显示的参数,从参数3开始,你可以简单地使用
echo "${@:3}" # OR
printf "%s\n" "${@:3}"
如果你真的想显示的参数指标,使用
for ((i=3; i < $#; i++)); do
echo $i
done
+0
您的答案是最好的,但在我的线程中没有结果... – MLSC
http://mywiki.wooledge.org/XyProblem –