Warum mein Code nicht ausgegeben wird, wenn eine eingegebene Zeichenfolge nicht in der Datei enthalten ist. Wenn ich eine Zeichenfolge eingebe und diese nicht in der Datei enthalten ist, erfolgt keine Antwort zurück, sondern es wird eine Wiederholung zum Anfang ausgeführt. Kann mir jemand sagen, was mit meinem Code nicht stimmt?
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
quelle
quelle
input_string
ist übrigens nicht wirklich ein sprechender Variablenname :)Antworten:
quelle
-v
oder der Dateiname Leerzeichen enthält.Sie haben Ihren fehlenden else-Zweig herausgefunden, aber einen Vorschlag:
anstatt zu
$input_string $input_string1
versuchen , versuche${input_string} ${input_string1}
nur sicherzustellen, dass dir nicht$input_string
1 folgt.quelle
$input_string1
ist der Wert der Variableninput_string1
(geteilt und global, da er nicht in Anführungszeichen steht), die Variable ist nicht beteiligtinput_string
.