Je d=E9bute dans le monde du korn shell... et je cherche =E0 faciliter le=20
travail de certain utilisateurs...
Dont moi :)
comment dois-je proc=E9der pour afficher dans une "liste de choix" le=20
retour d'une commande ls ?
Et id=E9alement r=E9cup=E9rer le nom du fichier ou dossier qu'a s=E9lection=
ner=20
l'utilisateur ?
Je débute dans le monde du korn shell... et je cherche à faciliter le travail de certain utilisateurs... Dont moi :)
comment dois-je procéder pour afficher dans une "liste de choix" le retour d'une commande ls ? Et idéalement récupérer le nom du fichier ou dossier qu'a sélectionné l'utilisateur ?
Merci d'avance pour votre aide !
Voir par exemple: http://groups.google.com/group/fr.comp.os.unix/msg/7f3116ce7e26e12e
C'est de la coquille bash, mais ça devrait pouvoir tourner sans trop de modifications en ksh.
Si on considère la seconde implémentation, commencer simplement par:
There is no worse tyranny than to force a man to pay for what he does not want merely because you think it would be good for him. -- Robert Heinlein
bil.bao@freesurf.ch writes:
bonjour à vous...
Je débute dans le monde du korn shell... et je cherche à faciliter le
travail de certain utilisateurs...
Dont moi :)
comment dois-je procéder pour afficher dans une "liste de choix" le
retour d'une commande ls ?
Et idéalement récupérer le nom du fichier ou dossier qu'a sélectionné
l'utilisateur ?
Merci d'avance pour votre aide !
Voir par exemple:
http://groups.google.com/group/fr.comp.os.unix/msg/7f3116ce7e26e12e
C'est de la coquille bash, mais ça devrait pouvoir tourner sans trop
de modifications en ksh.
Si on considère la seconde implémentation, commencer simplement par:
Je débute dans le monde du korn shell... et je cherche à faciliter le travail de certain utilisateurs... Dont moi :)
comment dois-je procéder pour afficher dans une "liste de choix" le retour d'une commande ls ? Et idéalement récupérer le nom du fichier ou dossier qu'a sélectionné l'utilisateur ?
Merci d'avance pour votre aide !
Voir par exemple: http://groups.google.com/group/fr.comp.os.unix/msg/7f3116ce7e26e12e
C'est de la coquille bash, mais ça devrait pouvoir tourner sans trop de modifications en ksh.
Si on considère la seconde implémentation, commencer simplement par:
C'est exactement ce qu'il me fallait ! Merci beaucoup Pascal
bil.bao
Pascal je m'excuse.. mais sans vouloir abuser...
Le script fonctionne parfaitement sous un shell bash
Cependant, je n'arrive pas à le faire fonctionner en ksh. En faite c'est la partie de la boucle qui me pose des problèmes...
L'affichage n'est pas très coérant et l'incrémentation des choix ne s e fait pas. ça ne tient pas à grand chose mais je suis incapable de voir ou est l'erreur...
Le script fonctionne parfaitement sous un shell bash
Cependant, je n'arrive pas à le faire fonctionner en ksh.
En faite c'est la partie de la boucle qui me pose des problèmes...
L'affichage n'est pas très coérant et l'incrémentation des choix ne s e
fait pas.
ça ne tient pas à grand chose mais je suis incapable de voir ou est
l'erreur...
Le script fonctionne parfaitement sous un shell bash
Cependant, je n'arrive pas à le faire fonctionner en ksh. En faite c'est la partie de la boucle qui me pose des problèmes...
L'affichage n'est pas très coérant et l'incrémentation des choix ne s e fait pas. ça ne tient pas à grand chose mais je suis incapable de voir ou est l'erreur...
... comment dois-je procéder pour afficher dans une "liste de choix" le retour d'une commande ls ? Et idéalement récupérer le nom du fichier ou dossier qu'a sélectionner l'utilisateur ?
- - - - - - - - - - - - #!/bin/ksh
select choix in $(ls) do break done
echo "choix=$choix" - - - - - - - - - - - -
Les noms de fichiers ne doivent pas contenir d'espaces.
...
comment dois-je procéder pour afficher dans une "liste de choix" le
retour d'une commande ls ?
Et idéalement récupérer le nom du fichier ou dossier qu'a sélectionner
l'utilisateur ?
- - - - - - - - - - - -
#!/bin/ksh
select choix in $(ls)
do
break
done
echo "choix=$choix"
- - - - - - - - - - - -
Les noms de fichiers ne doivent pas contenir d'espaces.
... comment dois-je procéder pour afficher dans une "liste de choix" le retour d'une commande ls ? Et idéalement récupérer le nom du fichier ou dossier qu'a sélectionner l'utilisateur ?
- - - - - - - - - - - - #!/bin/ksh
select choix in $(ls) do break done
echo "choix=$choix" - - - - - - - - - - - -
Les noms de fichiers ne doivent pas contenir d'espaces.
Le script fonctionne parfaitement sous un shell bash
Cependant, je n'arrive pas à le faire fonctionner en ksh. En faite c'est la partie de la boucle qui me pose des problèmes...
L'affichage n'est pas très coérant et l'incrémentation des choix ne se fait pas. ça ne tient pas à grand chose mais je suis incapable de voir ou est l'erreur...
Je suis désolé, mais je n'utilise pas ksh. En grande partie pour cette raison, que les choix ne s'incrémentent pas. Il semble que modifier une variable à l'intérieur d'une boucle while n'a pas d'impact hors de la boucle, au moins dans les cas où le corps de la boucle s'exécute dans un sous-processus.
Pour cette raison, et d'autres, je trouve que programmer une telle fonction avec un shell est limite. (J'ai mieux à faire qu'apprendre les tonnes de détails arbitraires et idiosyncrasies spécifiques nécessaires pour pouvoir écrire correctement (sans dire portablement) des programmes en shell).
Je conseille d'utiliser un vrai langage de programmation pour écrire ce genre de "script", par exemple, scsh, clisp, ruby, etc, n'importe quoi, mais pas un shell.
This universe shipped by weight, not volume. Some expansion may have occurred during shipment.
bil.bao@freesurf.ch writes:
Pascal je m'excuse.. mais sans vouloir abuser...
Le script fonctionne parfaitement sous un shell bash
Cependant, je n'arrive pas à le faire fonctionner en ksh.
En faite c'est la partie de la boucle qui me pose des problèmes...
L'affichage n'est pas très coérant et l'incrémentation des choix ne
se fait pas. ça ne tient pas à grand chose mais je suis incapable
de voir ou est l'erreur...
Je suis désolé, mais je n'utilise pas ksh. En grande partie pour
cette raison, que les choix ne s'incrémentent pas. Il semble que
modifier une variable à l'intérieur d'une boucle while n'a pas
d'impact hors de la boucle, au moins dans les cas où le corps de la
boucle s'exécute dans un sous-processus.
Pour cette raison, et d'autres, je trouve que programmer une telle
fonction avec un shell est limite. (J'ai mieux à faire qu'apprendre
les tonnes de détails arbitraires et idiosyncrasies spécifiques
nécessaires pour pouvoir écrire correctement (sans dire portablement)
des programmes en shell).
Je conseille d'utiliser un vrai langage de programmation pour écrire
ce genre de "script", par exemple, scsh, clisp, ruby, etc, n'importe
quoi, mais pas un shell.
Le script fonctionne parfaitement sous un shell bash
Cependant, je n'arrive pas à le faire fonctionner en ksh. En faite c'est la partie de la boucle qui me pose des problèmes...
L'affichage n'est pas très coérant et l'incrémentation des choix ne se fait pas. ça ne tient pas à grand chose mais je suis incapable de voir ou est l'erreur...
Je suis désolé, mais je n'utilise pas ksh. En grande partie pour cette raison, que les choix ne s'incrémentent pas. Il semble que modifier une variable à l'intérieur d'une boucle while n'a pas d'impact hors de la boucle, au moins dans les cas où le corps de la boucle s'exécute dans un sous-processus.
Pour cette raison, et d'autres, je trouve que programmer une telle fonction avec un shell est limite. (J'ai mieux à faire qu'apprendre les tonnes de détails arbitraires et idiosyncrasies spécifiques nécessaires pour pouvoir écrire correctement (sans dire portablement) des programmes en shell).
Je conseille d'utiliser un vrai langage de programmation pour écrire ce genre de "script", par exemple, scsh, clisp, ruby, etc, n'importe quoi, mais pas un shell.
This universe shipped by weight, not volume. Some expansion may have occurred during shipment.
bil.bao
Merci à tous pour votre aide !
Pascal, malheureusement je n'ai pas vraiment le choix du language. C'est un peu imposé par la société... et ce que tu me dis ne m'éton ne qu'a moitié compte tenu des différentes décisions qui se prennent chez nous ;) ça ne changerait pas mon problème de toute manière vu que je n'y connais rien :) Je te remercie de tes conseils qui me serviront probablement pour la suite...
Jean-Luc et Louis... Merci pour le select ! C'est un peu moins sexy en ce qui concerne la mise en forme... mais c'est parfaitement fonctionnel en l'état et il faut le dire plus simple
A+
Bil
Merci à tous pour votre aide !
Pascal, malheureusement je n'ai pas vraiment le choix du language.
C'est un peu imposé par la société... et ce que tu me dis ne m'éton ne
qu'a moitié
compte tenu des différentes décisions qui se prennent chez nous ;)
ça ne changerait pas mon problème de toute manière vu que je n'y
connais rien :)
Je te remercie de tes conseils qui me serviront probablement pour la
suite...
Jean-Luc et Louis... Merci pour le select !
C'est un peu moins sexy en ce qui concerne la mise en forme... mais
c'est parfaitement fonctionnel en l'état et il faut le dire plus
simple
Pascal, malheureusement je n'ai pas vraiment le choix du language. C'est un peu imposé par la société... et ce que tu me dis ne m'éton ne qu'a moitié compte tenu des différentes décisions qui se prennent chez nous ;) ça ne changerait pas mon problème de toute manière vu que je n'y connais rien :) Je te remercie de tes conseils qui me serviront probablement pour la suite...
Jean-Luc et Louis... Merci pour le select ! C'est un peu moins sexy en ce qui concerne la mise en forme... mais c'est parfaitement fonctionnel en l'état et il faut le dire plus simple
A+
Bil
Jean-Louis Liagre
Jean-Louis Liagre :
$(ls)
Plutôt « * ».
C'est vrai, et le résultat est identique, mais ça esquive la question (retour de ls).
Jean-Louis Liagre :
$(ls)
Plutôt « * ».
C'est vrai, et le résultat est identique, mais ça esquive la question
(retour de ls).
C'est vrai, et le résultat est identique, mais ça esquive la question (retour de ls).
Stephane Chazelas
2007-01-30, 21:43(+01), Jean-Louis Liagre:
Jean-Louis Liagre :
$(ls)
Plutôt « * ».
C'est vrai, et le résultat est identique, mais ça esquive la question (retour de ls).
sigh...
Non, le resultat n'est pas identique. $(ls) ne fait pas de sens si on n'a pas au prealable modifié IFS et fait un set -f. Et * devient "*" s'il n'y a pas de fichier dans le repertoire courant.
-- Stéphane
2007-01-30, 21:43(+01), Jean-Louis Liagre:
Jean-Louis Liagre :
$(ls)
Plutôt « * ».
C'est vrai, et le résultat est identique, mais ça esquive la question
(retour de ls).
sigh...
Non, le resultat n'est pas identique. $(ls) ne fait pas de sens
si on n'a pas au prealable modifié IFS et fait un set -f. Et *
devient "*" s'il n'y a pas de fichier dans le repertoire
courant.
C'est vrai, et le résultat est identique, mais ça esquive la question (retour de ls).
sigh...
Non, le resultat n'est pas identique. $(ls) ne fait pas de sens si on n'a pas au prealable modifié IFS et fait un set -f. Et * devient "*" s'il n'y a pas de fichier dans le repertoire courant.