Usando o grep em uma instrução if-else [closed]

9

Por que meu código não está saindo se uma string digitada não estiver no arquivo. Quando eu insiro uma string e ela não está no arquivo, não há resposta, ela volta ao início. Alguém pode me dizer o que há de errado com o meu código?

while :
do
echo "Please enter a string"
read input_string
echo "Please enter the file name too see if that string is present in it - (Enter .abw after)"
read input_string1
if grep -q $input_string $input_string1 ; then
echo  "Your string has been found"
fi
done
    
por Adam Poyser 22.09.2014 / 14:27

2 respostas

9

while :
 do
     echo "Please enter a string"
     read input_string
     echo "Please enter the file name too see if that string is present in it - (Enter .abw after)"
     read input_string1
     grep -q "${input_string}" "${input_string1}"                                                                 
     if [ $? -eq 0 ] ; then
         echo  "Your string has been found"
     else 
         echo "Your string has not been found"
     fi
 done
    
por 22.09.2014 / 14:46
0

Você descobriu a falta de outro ramo, mas uma sugestão:

em vez de usar $input_string $input_string1 try ${input_string} ${input_string1} apenas para garantir que você não receba $input_string seguido por 1.

    
por 22.09.2014 / 18:56