bash executando cada linha do arquivo e verificando o sucesso

-1

Eu tinha um arquivo com um número variável de linhas e cada linha é um comando, digamos, file1.txt :

command1
command2
command3

Minha intenção é executar cada linha e reportar "bom" se o comando for sucesso. Else report "bad" o comando falhou.

Eu tentei como abaixo:

while read line

do
$i
        if [ $? -eq 0 ]
                then
                "echo good"
        fi
                "echo bad"
done< file1.txt

Mas isso não estava funcionando. Eu sei que estou fazendo uma questão boba aqui.

    
por user261334 04.04.2014 / 12:08

1 resposta

2

O principal problema é que você está lendo $line e, em seguida, usando $i . Além disso, echo "bad" não está no bloco else , mas no normal. Então, será sempre impresso.

Você também pode precisar usar eval :

while read line
do
   eval "$line"
   if [ $? -eq 0 ]; then
       echo "good"
   else
       echo "bad"
   fi

done < file1.txt

Observe também que é importante citar as variáveis como em eval "$line" .

    
por fedorqui 04.04.2014 / 12:19