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 № 1Você 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