Pourquoi mon code ne sort pas si une chaîne entrée n'est pas dans le fichier. Lorsque j'entre une chaîne et qu'elle n'est pas dans le fichier, il n'y a pas de réponse en arrière, elle revient en boucle au début. Quelqu'un peut-il me dire ce qui ne va pas avec mon code?
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
la source
la source
input_string
n'est pas vraiment un nom de variable parlante, soit dit en passant :)Réponses:
la source
-v
, ou s'il y avait des espaces dans le nom de fichier.Vous avez trouvé votre autre branche manquante, mais une suggestion:
au lieu d'utiliser,
$input_string $input_string1
essayez${input_string} ${input_string1}
simplement de vous assurer de ne pas être$input_string
suivi par 1.la source
$input_string1
est la valeur de la variableinput_string1
(divisée et globulée, car elle n'est pas citée), elle n'implique pas la variableinput_string
.