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 10/02/2015, à 13: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, à 15:19)

Hors ligne

#2 Le 10/02/2015, à 14: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, à 15: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....


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#4 Le 10/02/2015, à 21: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 smile

Hors ligne

#5 Le 11/02/2015, à 07: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, à 10:47

credenhill

Re : Syntax Error quand bash executé en root - RESOLUT !!!

dans un terminal ?

Hors ligne

#7 Le 11/02/2015, à 11: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, à 13:08)

Hors ligne

#8 Le 11/02/2015, à 13: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, à 15:17

mikymaxsp28

Re : Syntax Error quand bash executé en root - RESOLUT !!!

mikymaxsp28 a écrit :

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, à 20: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...

Hors ligne