Shell - interprétation de *
Résolu
jax54000
Messages postés
44
Statut
Membre
-
jax54000 Messages postés 44 Statut Membre -
jax54000 Messages postés 44 Statut Membre -
Hello,
Le sujet dira qqchse à certains...........comme à Jipicy par ex.
Et oui il s'agit encore d'un problème d'interprétation du caractère * mais pas dans le même contexte.
Explications :
J'ai une chaine de caracères contenant plusieurs mots. Un de ces mots est une * (là voilà cette étoile).
Je souhaiterais afficher ces mots un à un.
concrètement, le code :
Sentence="Hello boys I want to display *"
for Word in ${Sentence}
do
echo "${Word}"
done
Le résultat attendu est celui que j'attends pour tous les mots SAUF pour le caractère *. Je voudrais le voir affiché mais il est interprété...
Merci à tous les grands maîtres des claviers.
A+
Le sujet dira qqchse à certains...........comme à Jipicy par ex.
Et oui il s'agit encore d'un problème d'interprétation du caractère * mais pas dans le même contexte.
Explications :
J'ai une chaine de caracères contenant plusieurs mots. Un de ces mots est une * (là voilà cette étoile).
Je souhaiterais afficher ces mots un à un.
concrètement, le code :
Sentence="Hello boys I want to display *"
for Word in ${Sentence}
do
echo "${Word}"
done
Le résultat attendu est celui que j'attends pour tous les mots SAUF pour le caractère *. Je voudrais le voir affiché mais il est interprété...
Merci à tous les grands maîtres des claviers.
A+
Configuration: Windows XP Internet Explorer 6.0
7 réponses
-
Oups,
j'ai mal interprété :-)
-
Salut,
Voilà une solution, mais il doit y avoir moins tordu ;-))#!/bin/bash Sentence=(Hello boys I want to display \*) count=${#Sentence[@]} i=1 while [ "$i" -le "$count" ] do echo -e "${Sentence[$i]}" i=$(expr $i + 1) done;-))
-
Salut,
#!/bin/bash Sentence="Hello boys I want to display *" echo "$Sentence" | sed 's/ /\n/g'
-
Jipicy,
Le problème est que je ne peux pas niitialiser Sentence avec (Hello boys I want to display \*) pour la simple et bonne raison que dans mon cas Sentence=$* (dans une fonction).
...
La deuxième solution de lami20j fonctionne.
Merci à vous 2.
A+ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Juste pour le fun...
Sentence="Hello boys I want to display *" set "$Sentence" echo "$*"
-
peux-tu m'éclaircir Jipicy ? Que fait set ? est-ce que "$*" va pouvoir quand même être "découpé" en plusieurs mots ?
parce qu'effectivement la solution de lami ne me permet pas par exmple (ou pas facilement) d'afficher le numéro des paramètres (car tu l'as compris je souhaites afficher les paramètre passés à des fonctions qd un mode debug est activé).
Autrement dit je souhaiterias que le script m'affiche :
1: Hello
2: Boys
3: I
4: want
5: to
6: display
7: *
Merci
A+ -
Re-
Que fait set ?
Elle sert à affecter des paramètres. Un ch'tit exemple :[jp@MDK tmpfs]$ cat exemple.sh #! /bin/bash echo "Ceci est le 1er paramètre du script : $1" echo "Ceci est le 2nd paramètre du script : $2" echo "Les voici tous : $*" echo "===========================================" set vert jaune echo "Ceci est le nouveau 1er paramètre du script : $1" echo "Ceci est le nouveau 2nd paramètre du script : $2" echo "Les voici tous : $*" echo [jp@MDK tmpfs]$ sh exemple.sh bleu blanc rouge Ceci est le 1er paramètre du script : bleu Ceci est le 2nd paramètre du script : blanc Les voici tous : bleu blanc rouge =========================================== Ceci est le nouveau 1er paramètre du script : vert Ceci est le nouveau 2nd paramètre du script : jaune Les voici tous : vert jaune [jp@MDK tmpfs]$