/ / shell script: como passar 2 parâmetros no loop for? - festança, concha

script de shell: como passar 2 parâmetros em loop? - bash, shell

Eu estou criando um script de shell, onde eu precisopasse dois parâmetros (como hash tags) no loop for. por ex. (valor da chave) aqui, estou comparando o parâmetro "value" com algum valor e com base no qual é necessário executar alguma ação no parâmetro "key".

gostar:

for i in $(echo `awk "{print $0}" ab4`); or for i in $(cat ab4);
do if [ "`awk -F":" "{print $2}" $i`" = "`some value`" ];
then echo "go ahead and restart app service on `awk "{print $1}" $i`";

{aqui vou usar o comando para reiniciar o serviço, mas para isso preciso deste $ 1, que é um nome de host}

else echo "2nd condition here";
fi;
done.

o conteúdo de ab4 é como:

hostname app.rpmversion

Quando executo isso, obtendo o erro: "key" "value" in ab4 parameters are not a command.

Por favor ajude

Respostas:

2 para resposta № 1

Você pode usar read incorporado para isso:

while read -r key val; do
printf "Processing key=%s, value=%sn" "$key" "$val"
done < ab4

Saída:

Processing key=hostname, value=app.rpmversion