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 26/04/2008, à 20:02

th504

Script Shell, quelques soucis.

Bonsoir à tous! Voilà je commence la programmation en script shell afin de me simplifier la vie ^^ mais j'ai besoin de votre aide pour quelques commandes.

Mon script installe des paquets (nVidia, audacious,...), modifie le fichier sources.list et ajoute les clés de signature nécessaires.

*Quelle commande permet un retour console du déroulement de l'exécution du script?

*Comment puis-je demander le mot de passe root en mode graphique au tout début du script? (Ce qui m'évite d'écrire gksudo à toutes les commandes du script)

*Comment associer une info-bulle à un mot (ou groupe de mot)?

*Est-il possible d'ajouter un dépôts seulement à partir du mode console?

Merci d'avance. smile

Hors ligne

#2 Le 26/04/2008, à 20:13

Hoper

Re : Script Shell, quelques soucis.

Alors :
Par defaut, le resultat des commandes que tu passe se retrouve dans la console.. donc tu n'a rien a faire (ou alors j'ai pas compris ce que tu voulai faire).
Ensuite, pour la demande du mot de passe, fais des recherches sur zenity (ou quelque chose comme ca...)
Tu peux bien sur modifier le fichier /etc/sources.list avec des commandes en lignes (utilisation de sed, ou d'echo si c'est juste pour rajouter des lignes).
Pour les infos bulles, la par contre aucune idée.


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#3 Le 26/04/2008, à 20:33

th504

Re : Script Shell, quelques soucis.

Merci pour la rapidité de ta réponse.

Je pense que ça doit être faisable avec Zenity mais le fait est qu'en tapant la commande:

gksudo apt-get install nom_du_paquet

Il me demande le mot de passe en mode graphique, pour ensuite exécuter la commande.
J'ai essayé juste "gksudo", mais aucun retour.

Désolé pour ma première question. Effectivement, en lançant le script dans un terminal il m'affiche ce qu'il fait. 
Sinon je suis en train de lire un document sur Zenity, j'pense que ça va beaucoup me servir!

Hors ligne

#4 Le 26/04/2008, à 22:52

geenux

Re : Script Shell, quelques soucis.

gksudo apt-get install nom_du_paquet

Normal, gksudo c'est pour les applications graphiques! apt-get n'en est pas une donc fait

sudo apt-get install nom_du_paquet

Hors ligne

#5 Le 27/04/2008, à 20:31

th504

Re : Script Shell, quelques soucis.

Le problème avec sudo apt-get, c'est que je ne peux enregistrer le mdp qu'en executant le script dans le terminal.
Voici mon script, je pense qu'il vous apportera des précisions sur ce que je veux faire.

#!/bin/sh

#Variables
go0=Sources
go1=Clés
go2=Update
go3=nVidia
go4=Codecs
go5=VLC
go6=Audacious
go7=Java
go8=Flashplugin
go9=Évolution

	
	RET=`zenity --list --checklist --width=470 --height=390 \
		--title "Script" \
		--column="" --column "Catégorie" --column "Description" \
		TRUE	"$go0"	"Remplacement du fichier sources.list" \
		TRUE	"$go1"	"Acquisition des clés de signature" \
		TRUE	"$go2"	"Mise à jour de la BdD des paquets" \
		TRUE	"$go3"	"Configuration de la carte graphique" \
		TRUE	"$go4"	"Installation des codecs propriétaires" \
		TRUE	"$go5"	"Installation du lecteur média VLC" \
		TRUE	"$go6"	"Installation du lecteur média Audacious" \
		TRUE	"$go7"	"Installation de l'environnement Java" \
		TRUE	"$go8"	"Installation de Flashplugin pour Firefox" \
		TRUE	"$go9"	"Désinstallation d'Évolution"`

	if echo "$RET" | grep "$go0"; then
		#Création d'un backup du fichier sources.list
		sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
		#Remplacement du fichier sources.list
		sudo cp sources.list /etc/apt/
	fi
	if echo "$RET" | grep "$go1"; then
		#Clés de signature
		#Dépôt Medibuntu
		wget -q http://fr.packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
	fi
	if echo "$RET" | grep "$go2"; then
		#Mise à jour de la BdD des paquets
		sudo apt-get update
	fi
	if echo "$RET" | grep "$go3"; then
		#Sauvegarde du fichier xorg
		sudo cp /etc/X11/xorg.conf /etc/X11/xorg.backup
		#Si Restauration: sudo cp /etc/X11/xorg.backup /etc/X11/xorg.conf
		#Installation du driver nVidia
		sudo apt-get -y install nvidia-glx
		#Installation de l'interface de configuration
		sudo apt-get -y install nvidia-settings
		#Suppression du logo nVidia au démarrage
		sudo nvidia-xconfig --no-logo
	fi
	if echo "$RET" | grep "$go4"; then
		#Installation des codecs propriétaires
		sudo apt-get -y install w32codecs gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg gstreamer0.10-pitfdll libdvdcss2 totem-gstreamer gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-bad 
	fi
	if echo "$RET" | grep "$go5"; then
		#Installation du lecteur média VLC
		sudo apt-get -y install vlc
	fi
	if echo "$RET" | grep "$go6"; then
		#Installation du lecteur média Audacious
		sudo apt-get -y install audacious audacious-plugins audacious-plugins-extra
	fi
	if echo "$RET" | grep "$go7"; then
		#Installation de l'environnement java + plugin
		sudo apt-get -y install sun-java6-bin sun-java6-plugin
	fi
	if echo "$RET" | grep "$go8"; then
		#Installation de flashplugin pour Mozilla Firefox
		sudo apt-get -y install flashplugin-nonfree
	fi
	if echo "$RET" | grep "$go9"; then
		#Désinstallation d'Évolution
		sudo apt-get -y remove evolution
	fi

Donc j'aimerais que mon script demande le mot de passe une bonne fois pour toute au début (en mode graphique) pour ensuite exécuter toutes les autres commandes.

De plus, quel commande dois-je rajouter pour pouvoir afficher les détails du terminal et des opérations à effectuer dans une fenêtre comme lors de l'installation des paquets via Synaptic ("Détails")?

Dernière modification par th504 (Le 27/04/2008, à 20:32)

Hors ligne

#6 Le 27/04/2008, à 22:10

frafa

Re : Script Shell, quelques soucis.

lo

#!/bin/bash
if [[ ! "$SUDO_USER" || "$USER" != "root" ]]; then
xterm  -title 'ROOT' -e "gksudo -w -l -k $0"
exit 0
fi

Dernière modification par frafa (Le 27/04/2008, à 22:12)

Hors ligne

#7 Le 29/04/2008, à 13:49

toone

Re : Script Shell, quelques soucis.

Pour voir ce que réalise ton script (tu vois les actions réalisées pas à pas)

Tu marques set -x là où tu veux que cela commence à afficher et set +x à la fin.

Après quand tu fais ./tonprog.sh tu vois les actions qui se déroulent

Hors ligne