整天都在为此苦苦挣扎。所以我有一个看起来像这样的脚本。
终端命令将类似于
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
但是,调用curl
和grep
为每个参数都调用一次效率不高-我建议您修改解决该问题的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句