作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我想遍历所有参数,就像for i in "$@"一样简单;做...
。但是,假设我想从第二个参数开始,并利用参数的位置进行一些基本计算。
例如,我想将这些命令缩短为一个循环:
grep -v 'foobar' "$2" | grep -f $file > output1.txt
grep -v 'foobar' "$3" | grep -f $file > output2.txt
grep -v 'foobar' "$4" | grep -f $file > output3.txt
grep -v 'foobar' "$5" | grep -f $file > output4.txt
我尝试了很多变体,比如 for i in {2..5};做 grep -v 'foobar' "$$i"| grep -f $file > output$(($i-1)).txt;完成
;但是,bash 扩展似乎不是这样工作的。
编辑:
似乎我犯了一个错误,没有强调我需要使用参数的位置/数字(即 $2
中的 2)。这很重要,因为稍后会在脚本中单独使用输出文件。到目前为止,所有提供的答案似乎都是正确的,但我不知道如何使用它们来利用参数的“数字”。
最佳答案
已经有几个正确答案,另一种方式可能是:
for (( i=2; i <= "$#"; i++ )); do
echo "arg position: ${i}"
echo "arg value: ${!i}"
done
关于bash - 遍历 bash 脚本中的参数并使用它们的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37053780/
我是一名优秀的程序员,十分优秀!