Pages : 1
#1 Le 09/07/2008, à 00:33
- Soulou
[Résolu] Apprentissage du shell
Voilà récemment je me suis dit que ce serait chouette de pouvoir écrire des petits scripts shell, histoire de me simplifier les choses, c'est bien de prendre chez les autres, mais faire soit-même, c'est mieux.
Donc pour commencer mon apprentissage, je me dis qu'un petit script utilisant zenity permettant un "petit" (pour le moment) nettoyage du système serait cool.
Mais voilà je bloque à un moment, je suis incapale de lui faire comprendre une condition, dans une condition, regardez :
#!/bin/bash
Op1="Vider la corbeille"
Op2="Supprimer les paquets inutiles"
Op3="Supprimer les paquets archivés"
Cond=$(zenity --list --title="Nettoyage système" --text="Cochez les options que vous souhaitez réaliser, elles ne nuiront en aucun cas à votre ordinateur" --checklist \
--column="A réaliser" --column="Tâche" \
FALSE "$Op1" \
FALSE "$Op2" \
FALSE "$Op3")
if [ "$Cond" = "$Op1" ]; then
zenity --question --title="Confirmation" --text="Voulez-vous vraiment Vider la corbeille ?"
while [ "$?"="0" ]; do echo "ok" done
elif [ "$Cond" = "$Op2" ]; then
zenity --question --title="Confirmation" --text="Voulez-vous vraiment supprimer les paquets inutiles ?"
.... ainsi pour tout les cas possibles.
Le echo "ok" étant là à titre d'exemple, juste pour vérifier le fonctionnement. comment faire pour que cette petite condition fonctionne et ainsi permet au script de continuer sa route.
Puisque pour le moment, c'est impossible :
./Shell script.sh: line 17: erreur de syntaxe près du jeton `elif' inattendu
./Shell script.sh: line 17: `elif [ "$Cond" = "$Op2" ]; then'
Dernière modification par Soulou (Le 09/07/2008, à 18:39)
Hors ligne
#2 Le 09/07/2008, à 01:15
- Dark-Sham
Re : [Résolu] Apprentissage du shell
Soit tu écris
elif [ "$Cond" = "$Op2" ]; then;
Soit
elif [ "$Cond" = "$Op2" ]
then
[suite]
Script de sauvegarde/restauration APT
Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe
Hors ligne
#3 Le 09/07/2008, à 10:39
- Soulou
Re : [Résolu] Apprentissage du shell
Merci pour ta réponse ... Mais finalement, le problème n'est pas là, c'est ça que je souhaiterais régler :
while [ "$?"="0" ]; do echo "ok" done
lorsque je le retire, tout marche..
Hors ligne
#4 Le 09/07/2008, à 10:41
- Totor
Re : [Résolu] Apprentissage du shell
ça devrait être mieux comme ça
while [ "$?" == "0" ]; do; echo "ok"; done;
-- Lucid Lynx --
Hors ligne
#5 Le 09/07/2008, à 10:43
- Soulou
Re : [Résolu] Apprentissage du shell
Négatif
$ ./Shell\ script.sh
./Shell script.sh: line 15: erreur de syntaxe près du jeton `;' inattendu
./Shell script.sh: line 15: ` while [ "$?" == "0" ]; do; echo "ok"; done;'
if [ "$Cond" = "$Op1" ]
then zenity --question --title="Confirmation" --text="Voulez-vous vraiment Vider la corbeille ?"
while [ "$?" == "0" ]; do; echo "ok"; done;
elif [ "$Cond" = "$Op2" ]
Hors ligne
#6 Le 09/07/2008, à 10:45
- philou8237
Re : [Résolu] Apprentissage du shell
Perso j'écrirais plutot :
while [ $? -eq 0 ]; do
# blabla...
done
$? est une valeur numérique donc n'en fait pas une chaîne.
Hors ligne
#7 Le 09/07/2008, à 10:47
- Soulou
Re : [Résolu] Apprentissage du shell
oui effectivement j'ai trouvé, la syntaxe correct :
while [ "$?" == "0" ]; do echo "ok"; done;
quand à la chaîne je me suis bien rendu compte que ce n'était pas ce qu'il fallait xD, merci
Hors ligne
#8 Le 09/07/2008, à 10:50
- Soulou
Re : [Résolu] Apprentissage du shell
voila, ce qu'il fallait correspond plutôt à ça
if [ $? -eq 0 ]; then echo "ok"; else echo "Cancel"; fi;
et ça marche
Hors ligne
#9 Le 09/07/2008, à 11:26
- Soulou
Re : [Résolu] Apprentissage du shell
Un nouveau problème se pose,
elif [ "$Cond" == "$Op2" ]
then zenity --question --title="Confirmation" --text="Voulez-vous vraiment supprimer les paquets inutiles ?"
if [ $? -eq 0 ]; then gksudo apt-get autoremove; else echo "Cancel"; fi;
la commande apt-get autoremove demande une validation, comment faire pour qu'elle soit automatique ?
C'est bon j'ai trouvé <_<, faut que je cherche plus avant de poster xD "-y"
Dernière modification par Soulou (Le 09/07/2008, à 11:28)
Hors ligne
#10 Le 09/07/2008, à 17:21
- Dark-Sham
Re : [Résolu] Apprentissage du shell
Un petit [Résolu] dans le titre ?
Script de sauvegarde/restauration APT
Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe
Hors ligne
#11 Le 09/07/2008, à 18:39
- Soulou
Re : [Résolu] Apprentissage du shell
Voilà qui est fait, merci de votre aide, sûrement à une prochaine, j'utiliserais le même topic ^_-
Hors ligne