Pages : 1
#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.
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