Bash scripting manquant ‘]’

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