Dlaczego mój kod nie wyświetla się, jeśli wprowadzony ciąg nie znajduje się w pliku. Kiedy wprowadzam ciąg znaków, którego nie ma w pliku, nie ma odpowiedzi, ponownie zapętla się na początku. Czy ktoś może mi powiedzieć, co jest nie tak z moim kodem?
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
shell-script
Adam Poyser
źródło
źródło
input_string
tak na marginesie, nie jest tak naprawdę mówiącą nazwą zmiennej :)Odpowiedzi:
źródło
-v
lub w nazwie pliku są spacje.Odkryłeś swoją brakującą gałąź else, ale jedna sugestia:
zamiast używać
$input_string $input_string1
spróbuj${input_string} ${input_string1}
po prostu upewnić się, że nie$input_string
pojawi się 1.źródło
$input_string1
to wartość zmiennejinput_string1
(podzielona i globowana, ponieważ nie jest cytowana), nie obejmuje zmiennejinput_string
.