Script Shell Linux [Résolu/Fermé]

Signaler
Messages postés
2360
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
-
Messages postés
2360
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
-
Bonjour,

voilà un petit script pour rajouter des dépôts dans le fichier /etc/apt/sources.list


# !/bin/bash
#Liste des fonctions
function verif_root 
{
	UID_ROOT=0
	if [ "$UID" -ne "$UID_ROOT" ]
	then
		#Message d'erreur
		echo "Les droits d'administrateur n'ont pas été octroyés pour ce script. Veuillez le relancer avec les permissions root!"
		exit
	fi
}  

#Script

#Ajout du dépôt Wine
verif_root
echo "#WineHQ - Ubuntu 8.04" >> /etc/apt/sources.list
echo "deb http://wine.budgetdedicated.com/apt hardy main" >> /etc/apt/sources.list
#suite ici


Quand je l'essaye de l'éxécuter en utilisateur :

manu@manu-desktop:~/Bureau$ ./script_install_wine_ubuntu.sh 
Les droits d'administrateur n'ont pas été octroyés pour ce script. Veuillez le relancer avec les permissions root!


Donc là, c'est niquel comme je veux.

par contre en root :

manu@manu-desktop:~/Bureau$ sudo ./script_install_wine_ubuntu.sh 
./script_install_wine_ubuntu.sh: 3: function: not found
[: 12: Illegal number: 
./script_install_wine_ubuntu.sh: 17: verif_root: not found



Par contre, en tant que root (sudo -s avant), ça marche...

Si quelqu'un voit le problème...

3 réponses

Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 516
Un truc bête mais...enlève voir l'espace dans le sha-bang:
#!/bin/bash

Peut être que root n'a pas bash comme shell par défaut, et que comme le sha-bang est peut être mal interprété, le passage forcé à bash ne se fait pas.
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 756
Je ne sais pas trop d'où vient le message d'erreur que t'obtiens avec sudo mais pas en root.
Par contre, il devrait y avoir au moins un problème :
echo "#WineHQ - Ubuntu 8.04" >> /etc/apt/sources.list
Si tu lances ça en sudo, ça ne marchera pas car la redirection de flux est géré par le shell.
Alors qu'en root, ça marchera.
Messages postés
2360
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
278
donc j'ai modifié le script :

#!/bin/bash
#Liste des fonctions
function verif_root ()
{
	UID_ROOT=0
	#if [ "$UID" -ne "$UID_ROOT" ]
	if [ "$UID" != "$UID_ROOT" ]
	then


et là, ça marche

ça m'apprendra à faire du copier/coller sans réfléchier 2 minutes...