Posez votre question Signaler

Script Shell Linux [Résolu]

ibtor 2486Messages postés 29 mars 2008Date d'inscription - Dernière réponse le 19 déc. 2008 à 15:21
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...
Lire la suite 

Script Shell Linux »

3 réponses
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Ce document intitulé « Script Shell Linux » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook