#1 Le 15/02/2015, à 20:42
- newbieshell
aide pour creation d'un script shell
Bonjour a tous
Voici ma question :
J'aimerais listé un repertoire voulu dans un terminal ( ls /media) ca j'arrive
Par contre j'aimerez que le resultat de ls /media soit en variable pour pouvoir accédé a un repertoir voulu
exemple : ls /media >>>> toto tata tonton
choix : 1 toto
2 tata
3 tonton
Pour avoir /media/$choix/repertoire
Car d'un pc à un autre les choix seront differents
Merci d'avance de notre aide
Dernière modification par newbieshell (Le 15/02/2015, à 20:43)
Hors ligne
#2 Le 15/02/2015, à 21:33
- pingouinux
Re : aide pour creation d'un script shell
Bonsoir,
Si les noms de tes répertoires ne contiennent pas d'espaces
select choix in $(ls /media); do break; done
Ajouté :
Ceci marche dans tous les cas
liste=(/media/*);select choix in "${liste[@]}"; do break; done
Et pour utiliser la variable, ne pas oublier les " "
cd /media/"$choix"/repertoire
Dernière modification par pingouinux (Le 15/02/2015, à 21:39)
Hors ligne
#3 Le 15/02/2015, à 21:58
- Didier-T
Re : aide pour creation d'un script shell
Bonjour newbieshell,
une petite question, tu souhaite lister tout le contenu de ton répertoire, ou juste les sous répertoire ?
si c'est la seconde solution alors il vaudrait mieux utiliser cette commande
ls -d1 */
tu peut tester ceci
d=$(ls -d1 */)
x=0
for i in $d; do
echo "$x $i"
tab[$x]="$i"
x=$(($x+1))
done
read choix
echo ${tab[$choix]}
A+,
Didier.
Edit : en fait la solution de pingouinux est 100 fois mieux
modifié comme suit pour n'avoir que les répertoires
liste=(*/);select choix in "${liste[@]}"; do break; done; echo $choix
Dernière modification par Didier-T (Le 15/02/2015, à 22:03)
Hors ligne
#4 Le 15/02/2015, à 22:03
- Watael
Re : aide pour creation d'un script shell
salut,
si c'est la seconde solution alors il vaudrait mieux utiliser cette commande
:
lesRepertoireSeulement=( /media/*/ )
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 17/02/2015, à 19:35
- newbieshell
Re : aide pour creation d'un script shell
Bonsoir
Pour commencer merci de votre aide
Je pense que je me suis mal exprimé
Avec Gvim j'aimerez faire un script shell
#!/bin/bash
fct_menu ()
{
echo "
1 ) Lancement
Q ) Fermer
echo -n "Choix: "
read choix
case $choix in
1)
echo "liste=(/media/*);select choix in ${liste[@]}; do break; done""
echo -n "choix:"
read choix
xterm -e "cd /media/$choix/repertoire_voulu; $SHELL"
reset
"fct_menu";;
Q|q|quit|Quit|exit)
echo "Good bye!"
exit 0
;;
*)
echo "erreur de frappe"
fct_menu;;
esac
}
fct_menu
En gros au lancement du script que j'ai la possibilité de choisir et si je tape 1, s'affiche les repertoire dans media et ensuite selon mon choix cd /media/$choix/repertoire_voulu
En esperant etres plus clair
Merci de votre aide
Hors ligne