Script Shell Linux

Résolu/Fermé
ibtor Messages postés 2360 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 22 décembre 2009 - 19 déc. 2008 à 12:24
ibtor Messages postés 2360 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 22 décembre 2009 - 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...
A voir également:

3 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 déc. 2008 à 12:28
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.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
19 déc. 2008 à 12:44
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.
0
ibtor Messages postés 2360 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 22 décembre 2009 283
19 déc. 2008 à 15:21
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...
0