Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/09/2019, à 14:49

citadelle du 35

Simple script shell qui ne s'exécute pas...

Bonjour à tous,

Voilà, j'essaye de lancer un script shell contenant le code suivant:

#!/bin/bash

nom="mon_nom"

if [ $nom = "mon_nom" ]
then
        echo "Salut mon_nom !"
fi

Je fais un chmod +x du fichier et je le lance en obtenant les erreurs suivantes:

./script.sh : ligne 3: [mon_nom : commande introuvable

Je deviens fou, pourriez-vous m'aider svp ?

Hors ligne

#2 Le 27/09/2019, à 14:56

Postmortem

Re : Simple script shell qui ne s'exécute pas...

Bonjour,

Es-tu certain d'avoir une espace entre « [ » et « $ » dans la ligne « if [ $nom = "mon_nom" ] » ?

Edit :

$ nom=mon_nom
$ if [$nom = mon_nom ]; then echo plop; fi
[mon_nom : commande introuvable
$ if [ $nom = mon_nom ]; then echo plop; fi
plop

Dernière modification par Postmortem (Le 27/09/2019, à 14:58)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#3 Le 27/09/2019, à 14:56

pingouinux

Re : Simple script shell qui ne s'exécute pas...

Bonjour,
Ce script fonctionne. Quand tu l'as lancé, il devait manquer l'espace entre [ et $nom.
Il vaut d'ailleurs mieux faire :

if [ "$nom" = "mon_nom" ]

Hors ligne

#4 Le 27/09/2019, à 15:00

Postmortem

Re : Simple script shell qui ne s'exécute pas...

pingouinux a raison.
En bash, c'est même plus logique de faire if [ "$nom" = mon_nom ] plutôt que if [ $nom = "mon_nom" ]


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#5 Le 27/09/2019, à 15:33

Watael

Re : Simple script shell qui ne s'exécute pas...

décidément, ces crochets posent souvent des problèmes, non ? wink
une bonne raison pour leur préférer et recommander l'emploi de test, qui ne prend pas plus de caractères, et qui naturellement/intuitivement suggérera d'être suivi par un espace.

et, la petite ritournelle : « on met toujours les Développements de paramètres entre guillemets; TOUJOURS, à moins de savoir pourquoi. »

Dernière modification par Watael (Le 27/09/2019, à 15:35)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne