
一整天都在為此苦苦掙扎。所以我有一個看起來像這樣的腳本。
終端命令類似於
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 腳本來說還很陌生,因此非常感謝您的指導。謝謝!
答案1
在 bash 中,您可以使用變數間接
for((i=2;i<=$#;i+=2)); do echo "${!i}"; done
POSIXly,你可以做類似的事情
while [ $# -gt 0 ]; do
echo "$2"
shift; shift
done
curl
然而,為每個參數調用一次是相當低效的grep
- 我建議修改你解決問題的方法。