Rechercher : dans
Par :

Script Shell Linux

Dernière réponse le 19 déc 2008 à 15:21:35 ibtor, le 19 déc 2008 à 12:24:00 
 Signaler ce message aux modérateurs

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...
"Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety". Benjamin Franklin
Configuration: Linux
Firefox 3.0.5

Meilleures réponses pour « Script Shell Linux » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...

1

kilian, le 19 déc 2008 à 12:28:07

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. Le gâteau est un mensonge!

Répondre à kilian

2

fiddy, le 19 déc 2008 à 12:44:23

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.

Google is your friend

Répondre à fiddy

3

 ibtor, le 19 déc 2008 à 15:21:35

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... "Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety". Benjamin Franklin

Répondre à ibtor