#1 Le 10/02/2015, à 12:35
- mikymaxsp28
Syntax Error quand bash executé en root - RESOLUT !!!
Bonjour forum,
Je programme un script, sous lubuntu 14.04, contenant un tableau.
Ce script fonctionne bien en utilisateur standard, excepté le fait qu'il y a des modifications
de fichier qui nécessite d'être ROOT.
Mais une fois en ROOT, j'ai une erreur de syntaxe au niveau de la création du tableau
Bureau/fichier.sh: 3: Bureau/fichier.sh: Syntax error: "(" unexpected
#!/bin/bash
tab=(param1 param2 param3)
echo "Le tableau contient: ${tab[@]}"
Et chose un peu étrange, j'ai ceci quand je me connect en ROOT dans le lxterminal
sudo: unable to resolve host mon-pc
Merci pour votre aide
Dernière modification par mikymaxsp28 (Le 11/02/2015, à 14:19)
Hors ligne
#2 Le 10/02/2015, à 13:36
- credenhill
Re : Syntax Error quand bash executé en root - RESOLUT !!!
hello
comment est exécuté le script ? utilier bash nom-du-script plutot que sh nom-du-script
Hors ligne
#3 Le 10/02/2015, à 14:06
- jplemoine
Re : Syntax Error quand bash executé en root - RESOLUT !!!
Je dirais plutôt de faire un
./nom-du-script
C'est la première ligne qui donnera avec quel "programme", il faut l’exécuter....
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#4 Le 10/02/2015, à 20:59
- tiramiseb
Re : Syntax Error quand bash executé en root - RESOLUT !!!
Salut,
Même avis que credenhill et jplemoine...
Même question : comment exécutes-tu avec sudo ?
Tu donnes l'erreur mais tu ne donnes pas la commande que tu as exécutée
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 11/02/2015, à 06:51
- mikymaxsp28
Re : Syntax Error quand bash executé en root - RESOLUT !!!
J'execute le script de cette facon
# En utilisateur standard
Bureau/fichier.sh
# En root
sudo Bureau/fichier.sh
Hors ligne
#6 Le 11/02/2015, à 09:47
- credenhill
Re : Syntax Error quand bash executé en root - RESOLUT !!!
dans un terminal ?
Hors ligne
#7 Le 11/02/2015, à 10:14
- mikymaxsp28
Re : Syntax Error quand bash executé en root - RESOLUT !!!
oui.
J'ai ajouté les "" à chaque mot que je veux mettre dans le tableau mais ça ne change rien.
Pour tester le script, j'ai utilisé sh -n et bash --debug.
Le premier me trouve la même erreur et le deuxième ne trouve rien.
Je me demande s'il n'y a pas une différence de "sévérité" de contrôle des scripts en fonction des droits utilisateur.
N-ième test, j'ai executé le script en ROOT grace au commande sudo -i puis sudo -s et il n'y a eu aucun problème.
Est-il possible d'automatiser, dans le script ou autre méthode, le connexion temporaire en root ?
Dernière modification par mikymaxsp28 (Le 11/02/2015, à 12:08)
Hors ligne
#8 Le 11/02/2015, à 12:24
- credenhill
Re : Syntax Error quand bash executé en root - RESOLUT !!!
sh script ignore #!/bin/bash et donc ne reconnait pas les tableaux
Hors ligne
#9 Le 11/02/2015, à 14:17
- mikymaxsp28
Re : Syntax Error quand bash executé en root - RESOLUT !!!
N-ième test, j'ai executé le script en ROOT grace au commande sudo -i puis sudo -s et il n'y a eu aucun problème.
Le problème semble être résolut.
Merci.
Hors ligne
#10 Le 11/02/2015, à 19:43
- tiramiseb
Re : Syntax Error quand bash executé en root - RESOLUT !!!
Pour tester le script, j'ai utilisé sh -n et bash --debug.
Le premier me trouve la même erreur et le deuxième ne trouve rien.
Oui car sh est un raccourci vers Dash, qui est un shell compatible POSIX.
Les tableaux, c'est une extension de Bash, ce n'est pas standard.
Donc il ne faut pas appeler explicitement un script Bash avec la commande sh.
Par contre « sudo Bureau/fichier.sh » devrait fonctionner, en toute logique...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne