Je reçois une erreur toujours là et l’instruction else est toujours exécutée indépendamment de l’entrée donnée. J’ai même essayé en supprimant le; à la ligne 13 mais cela n’a pas aidé.
test.sh
#!/bin/bash echo "Enter app name" read y $y & top -b -n 1 > topLog.log #-w checks for the whole word not and sub ssortingng from that word grep -w "$y" topLog.log > p1 #-s option checks if the file p1 is present or not if [ -s "p1"]; #line 13 then echo "Successful " else echo "Unsuccessful" fi rm p1
Je suis nouveau sur le script bash.Alors s’il y a une erreur idiote s’il vous plaît excusez-moi.
Changement
if [ -s "p1"]; #line 13
dans
if [ -s "p1" ]; #line 13
notez l’espace.
J’ai eu cette erreur en essayant d’utiliser l’opérateur &&
intérieur de crochets simples comme [ ... && ... ]
. Je devais passer à [[ ... && ... ]]
.
Vous manquez un espace après "p1"
:
if [ -s "p1" ];
append un espace avant le support de fermeture