如何在bash脚本的for循环中使用参数变量?

萨夫德

整天都在为此苦苦挣扎。所以我有一个看起来像这样的脚本。

终端命令将类似于

script.sh ARG1 ARG2 ARG3 ARG4

该脚本如下所示:

totalargs=$#

for ((i=2; i<=totalargs; i+=2)); do
   curl somewebsite.com | grep "$i"
done

我想要实现的是grep其他所有参数,但是我似乎无法使用$ i将该参数放入循环中。在循环中,在所提供的情况下,应该为2,然后为4。

有任何想法吗?bash脚本还很陌生,因此欢迎您提供任何指导。谢谢!

钢铁司机

在bash中,您可以使用变量间接

for((i=2;i<=$#;i+=2)); do echo "${!i}"; done

POSIXly,您可以执行类似的操作

while [ $# -gt 0 ]; do 
  echo "$2"
  shift; shift
done

但是,调用curlgrep为每个参数都调用一次效率不高-我建议您修改解决该问题的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章