bonsoir;
esque vous pouvez m'aider a me comprendre le fonctionnement de ces mot cles?
ce script affiche une fenetre et ensuite choisir un fichier pour l'executer
merci.
#!/bin/bash
DIALOG=${DIALOG=dialog}
$DIALOG --backtitle "MENU DE COMPILATION" \
--title "COMPILATION" \
--radiolist "Faites votre choix : " 0 0 0 \
"exo1.c" "Compilation exercice 1." off \
"exo2.c" "Compilation exercice 2." off \
"exo3.c" "Compilation exercice3"off2>/tmp/checklist.tmp.$$
retval=$?
choix=`cat /tmp/checklist.tmp.$$`
rm -f /tmp/checklist.tmp.$$
case $retval in
0) case $choix in
exo1.c) gcc exo1.c
exec ./a.out
;;
exo2.c) gcc exo2.c
exec ./a.out
;;
exo3.c) gcc exo3.c
exec ./a.out
;;
esac
;;
*)
echo "Programme arrêté...";;
esac
# Re : probleme dans ce script shell
Posté par Pol' uX (site web personnel) . Évalué à 5.
On ne va pas faire tes devoirs a ta place, mais si tu as une question plus précise ...
Adhérer à l'April, ça vous tente ?
# Quelques infos
Posté par Damien COTTIER . Évalué à 4.
"exo3.c" "Compilation exercice3"off2>/tmp/checklist.tmp.$$
"exo3.c" "Compilation exercice 3." off 2>/tmp/checklist.tmp.$$
ensuite:
DIALOG=${DIALOG=dialog} je sais pas a koi ca sert:
DIALOG=dialog devrait faire la meme chose... ceci permet de creer une variable de nom DIALOG qui contient le contenu dialog... un peu plus bas y'a la même chose avec la variable $choix. Tu crées le contenu d'une variable en faisait:
variable_name=valeur
tu l'utilises en ajoutant $ devant le nom de la variable
$variable_name
dialog est un programme (avec tout plein d'option que tu peux comprendre en utilisant "man dialog") qui affiche une fenetre de dialogue.
$$ est une variable special de bash qui permet de retourner le "process ID" du shell qui est en train de s'executer. ceci permet de creer un fichier du type /tmp/checklist.tmp.12345 ou 12345 est le numero de process ID. l'idée est je pense de pouvoir utiliser le même script en même temps sur la même machine en s'assurant que le fichier temporaire aura un nom différent.
2>"fichier" permet de rediriger la sortie 2 (standard erreur stderr) vers le fichier temporaire. la sortie stderr semble contenir le choix selectionné dans la fenetre de dialog.
retval=$? permet d'avoir la valeur de retour du dernier processus lancé.
ex:
false;echo $?
retourne 1
true;echo $?
retourne 0
je pense que tu connais la commande "rm"
ci-dessous un basic switch case en bash (selection multiple)
case '$var' in #début du "case"
'valeur1') #si variable $var est égal à valeur1
n'importe quellle commande executé si valeur1...
;; # ;; permet de terminer la liste de commande
'valeur2') #si variable $var est égal à valeur2
n'importe quellle commande executé si valeur1...
;;
*) si variable $var est égal à toutes les autres valeur
n'importe quellle commande executé dans les autres cas...
;;
esac #fin du case
je pense avoir suffisament donné de détails...
bon courage dans l'apprentissage du scripting bash, ci-dessous tu auras toutes les infos (faut juste comprendre l'anglais) :
http://tldp.org/LDP/abs/html/
Damien.
[^] # Re: Quelques infos
Posté par Pol' uX (site web personnel) . Évalué à 5.
Tu es trop gentil de lui faire ses exercices ;-)
amha, seul un prof d'info peut donner un script aussi inutile :D
Adhérer à l'April, ça vous tente ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.