Je reçois une erreur ./test.sh: ligne 13: [: manquant `] 'dans le fichier test.sh. J'ai essayé d'utiliser des crochets et d'autres options telles que -a ou en vérifiant la taille du fichier p1, mais l'erreur est toujours là et l'instruction else est toujours exécutée quelle que soit l'entrée donnée.J'ai même essayé en supprimant le; dans 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 string 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 novice dans le scripting. Ainsi, s'il y a une erreur stupide, veuillez m'excuser.
Changement
if [ -s "p1"]; #line 13
dans
if [ -s "p1" ]; #line 13
notez l'espace.
J'ai eu cette erreur en essayant d'utiliser le &&
opérateur à l’intérieur de crochets simples comme [ ... && ... ]
. Je devais passer à [[ ... && ... ]]
.
Il vous manque un espace après "p1"
:
if [ -s "p1" ];
ajouter un espace avant le crochet de fermeture