我正在使用bash函数,我怀疑它目前有语法错误,代码是这样的:
for (( i=1; i<$#; i++))
do
GET_BLOCK "/$${!i}/" ...
done
我要做的是为第一个参数运行GET_BLOCK“/ $ 1 /”,对于第二个参数运行“/ $ 2 /”,依此类推,直到没有更多参数传递给脚本。我这样做了吗 对? (PS!我需要获得变量值$ 1,$ 2 exc ...)
答案 0 :(得分:4)
迭代位置参数的更惯用的方法是使用$@
:
for p in "$@"; do
GET_BLOCK "/$p/"
done
你想要的是
for ((i=1; i<$#; i++))
do
GET_BLOCK "/${!i}"
done
但这不是非标准的,也不如直接迭代$@
那么明确。