5: Erreur de syntaxe: "(" inattendu (attendant "puis") dans mon script

Bonjour, j'ai un problème avec ce script Cette fonctionnalité est apparemment mauvaise mais comment y remédier?

nc -z -v ip adress port
if connect to ip adress port 13000 (tcp) failed: Connection refused
then
cd /usr/home/game/
./game
else
exit
fi

Erreur :

5: Erreur de syntaxe: "(" inattendu (attendant "puis")

0
Qu'est-ce que cela est supposé faire: si la connexion à l'adresse IP du port 13000 (tcp) a échoué: Connexion refusée ? Y at-il vraiment une commande connect qui prend ces paramètres? Ou essayez-vous de vérifier une erreur?
ajouté l'auteur tjameson, source
Avez-vous l'intention d'exécuter ./ game uniquement si la commande nc échoue ?
ajouté l'auteur Keith Thompson, source

2 Réponses

Vous pourriez probablement agir en fonction du statut de sortie de nc:

if nc ...
then
    play the game
else
    exit
fi
2
ajouté
result=$(nc -z -v $ipaddress $port 2>&1)
if [ "$result" = "connect to ip adress port 13000 (tcp) failed: Connection refused" ]
then
    cd /usr/home/game
    ./game
else
    exit
fi

$(...) substitutes the output of the command into the command line. And 2>&1 redirects standard error to standard output, so the error message will be captured by this.

1
ajouté