
tenho lutado com isso o dia todo. Então eu tenho um script que se parece com isso.
O comando do terminal seria algo parecido com
script.sh ARG1 ARG2 ARG3 ARG4
O script é o seguinte:
totalargs=$#
for ((i=2; i<=totalargs; i+=2)); do
curl somewebsite.com | grep "$i"
done
O que estou tentando alcançar é usar o grep para todos os outros argumentos, mas não consigo colocar o argumento no loop usando $i. Que deve ser 2 e depois 4 no caso fornecido à medida que o loop itera.
Alguma ideia? Muito novo em scripts bash, então qualquer orientação é apreciada. Obrigado!
Responder1
No bash, você pode usarindireção variável
for((i=2;i<=$#;i+=2)); do echo "${!i}"; done
POSIXly, você poderia fazer algo como
while [ $# -gt 0 ]; do
echo "$2"
shift; shift
done
No entanto, é bastante ineficiente ligar curl
uma grep
vez para cada argumento - sugiro revisar sua abordagem ao problema.