#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 ?
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