Você realmente não precisa de ambas as linhas grep, ao invés disso você pode muito bem colocar:
if grep -q "$input_string" "$input_string1" ; then
echo "Your string has been found"
else
echo "Your string has not been found"
fi
Estou tentando escrever um script de shell que recebe uma entrada de cadeia de caracteres de um usuário, solicita um nome de arquivo e relata se essa cadeia está presente no arquivo. Abaixo está meu script atual.
#!/bin/bash
while :
do
echo "Please enter a string"
read input_string
echo "Please enter the file name to see if that string is present in it - (Enter .abw after)"
read input_string1
grep -q "${input_string}" "${input_string1}"
if grep -q $input_string $input_string1 ; then
echo "Your string has been found"
else
echo "Your string has not been found"
fi
done
quando executo o script, ele diz
Line 2: while:: command not found
Line 3: syntax error near unexpected token 'do'
Line 3: 'do'
Se alguém pudesse me apontar na direção certa, eu agradeceria muito.
Você realmente não precisa de ambas as linhas grep, ao invés disso você pode muito bem colocar:
if grep -q "$input_string" "$input_string1" ; then
echo "Your string has been found"
else
echo "Your string has not been found"
fi
Tags bash shell-script