Ls dans un shel script
Résolu/Fermé
Utilisateur anonyme
-
29 janv. 2009 à 11:43
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 29 janv. 2009 à 14:15
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 29 janv. 2009 à 14:15
A voir également:
- Script ls
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
- Executeur de script - Télécharger - Édition & Programmation
3 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
29 janv. 2009 à 11:46
29 janv. 2009 à 11:46
Salut,
Essaie comme ça :
;-))
Essaie comme ça :
TRUC=$(ls -1) echo "$TRUC"C'est un UN et pas un "ELLE" minuscule !
;-))
Utilisateur anonyme
29 janv. 2009 à 14:07
29 janv. 2009 à 14:07
Merci pour ta réponse, jipicy
Oui c'est vraiment etrange comme comportement :
rentré directement sur le shell debian, ls renvoi une ligne, tandis que un script avec :
echo "$(ls /)" (meme sans le -1 !!) me renvois bien mon tableau
en fait j'ai l'impression que mon soucis ne venais pas de ls proprement dis, mais de la sortie standard qui modifie les retour à la ligne sur certaine version de linux (par ex sur rhel5 no problem).
pour resoudre ça, soit se passer de la sortie standard pour remplir la variable ( comme plus haut), ou soit forcer un retour à la ligne du genre
echo -e $LIST '\n'
dans ma boucle for list in ...
bien sur, c'est BEAUCOUP plus propre et moins onéreux en ressource de se passer de la sortie standard
ouf !!!
@+!
Oui c'est vraiment etrange comme comportement :
rentré directement sur le shell debian, ls renvoi une ligne, tandis que un script avec :
echo "$(ls /)" (meme sans le -1 !!) me renvois bien mon tableau
en fait j'ai l'impression que mon soucis ne venais pas de ls proprement dis, mais de la sortie standard qui modifie les retour à la ligne sur certaine version de linux (par ex sur rhel5 no problem).
pour resoudre ça, soit se passer de la sortie standard pour remplir la variable ( comme plus haut), ou soit forcer un retour à la ligne du genre
echo -e $LIST '\n'
dans ma boucle for list in ...
bien sur, c'est BEAUCOUP plus propre et moins onéreux en ressource de se passer de la sortie standard
ouf !!!
@+!
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
29 janv. 2009 à 14:15
29 janv. 2009 à 14:15
en fait j'ai l'impression que mon soucis ne venais pas de ls proprement dis, mais de la sortie standard qui modifie les retour à la ligne sur certaine version de linux (par ex sur rhel5 no problem).
En fait c'est au niveau des quotes (doubles) aurour de la variable que ça importe et apparemment du shell utilisé ;-\
En fait c'est au niveau des quotes (doubles) aurour de la variable que ça importe et apparemment du shell utilisé ;-\
jp@MDK:~/tmpfs ssh$ ls a b c d e f jp@MDK:~/tmpfs ssh$ ls -1 a b c d e f jp@MDK:~/tmpfs ssh$ A=$(ls -1) jp@MDK:~/tmpfs ssh$ echo $A a b c d e f jp@MDK:~/tmpfs ssh$ echo "$A" a b c d e f jp@MDK:~/tmpfs ssh$;-))