[ Ksh ] Variable contenant des espaces
Fermé
Icefan
-
20 juin 2011 à 16:47
Icefan Messages postés 6 Date d'inscription mardi 21 juin 2011 Statut Membre Dernière intervention 21 juin 2011 - 21 juin 2011 à 14:31
Icefan Messages postés 6 Date d'inscription mardi 21 juin 2011 Statut Membre Dernière intervention 21 juin 2011 - 21 juin 2011 à 14:31
A voir également:
- [ Ksh ] Variable contenant des espaces
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Vba range avec variable ✓ - Forum VB / VBA
- Espaces insécables word - Guide
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Vba selection plage variable ✓ - Forum VB / VBA
2 réponses
zipe31
Messages postés
36316
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 544
20 juin 2011 à 17:24
20 juin 2011 à 17:24
Salut,
Chez moi avec un /bin/ksh93 les variables avec des blancs passent très bien ;-\
Sinon, tu peux essayer avec l'expansion des paramètres. En gras les modifs. J'ai testé et ça marche aussi :
Chez moi avec un /bin/ksh93 les variables avec des blancs passent très bien ;-\
Sinon, tu peux essayer avec l'expansion des paramètres. En gras les modifs. J'ai testé et ça marche aussi :
#!/bin/ksh93
chx1="Texte_du_choix1"
chx2="Texte du choix2"
chx3="Texte du choix3"
chx4="Texte du choix4"
chx5="Texte du choix5"
chx6="Quitter"
PS3="Veuillez entrer votre choix :"
select choixaction in "${chx1//_/ }" "$chx2" "$chx3" "$chx4" "$chx5" "$chx6"
do
case $choixaction in
#Selection du choix 1
${chx1//_/ })
echo $chx1
break
;;
#Selection du choix 2
$chx2)
echo $chx2
break
;;
#Selection du choix 3
$chx3)
echo $chx3
break
;;
#Selection du choix 4
$chx4)
echo $chx4
break
;;
#Selection du choix 5
$chx5)
echo $chx5
break
;;
#Selection du choix 6
$chx6)
#Arret du programme
echo "\nVous avez quitte le programme\n"
exit
;;
#Controle d erreurs
*) echo "\nChoix inexistant. Veuillez recommencer\n"
;;
esac
done
Salut =)
Merci pour ta réponse.
Je me suis empressé de tester tout ça et malheureusement rien ne va :'(
Si j'ajoute 93 au #!/bin/ksh93, il me dit :
interpreter "/bin/ksh93" not found
file link ressolves to "/usr/bin/ksh93"
sh: vues2.sh (nom de mon script): not found
En gros, il ne trouve pas ksh93 et du coup ne trouve pas mon script. J'ai regardé dans l'arboressence via des ".." et il n y a pas de ksh93 dans /usr/bin, il y a bien ksh mais pas 93 :S
Ensuite avec ${chx1//_/ }, il ne m'affiche plus mon menu et me met :
"${chx1//_/ }": bad substitution
Je ne comprend pas pourquoi, ça va faire 2 semaines que j'essaye de régler ce problème d'affichage avec espaces et chaque réponse que l'on me donne me semble bonne mais ne fonctionne pas avec moi :( ça me prend la tête !
Je suis peut-être aussi un boulet qui ne fais pas bien les choses ^^
Éclairer moi s'il vous plait =)
Icefan
Merci pour ta réponse.
Je me suis empressé de tester tout ça et malheureusement rien ne va :'(
Si j'ajoute 93 au #!/bin/ksh93, il me dit :
interpreter "/bin/ksh93" not found
file link ressolves to "/usr/bin/ksh93"
sh: vues2.sh (nom de mon script): not found
En gros, il ne trouve pas ksh93 et du coup ne trouve pas mon script. J'ai regardé dans l'arboressence via des ".." et il n y a pas de ksh93 dans /usr/bin, il y a bien ksh mais pas 93 :S
Ensuite avec ${chx1//_/ }, il ne m'affiche plus mon menu et me met :
"${chx1//_/ }": bad substitution
Je ne comprend pas pourquoi, ça va faire 2 semaines que j'essaye de régler ce problème d'affichage avec espaces et chaque réponse que l'on me donne me semble bonne mais ne fonctionne pas avec moi :( ça me prend la tête !
Je suis peut-être aussi un boulet qui ne fais pas bien les choses ^^
Éclairer moi s'il vous plait =)
Icefan
zipe31
Messages postés
36316
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 544
21 juin 2011 à 08:26
21 juin 2011 à 08:26
Si j'ai précisé ksh93 c'était juste pour clarifier en fonction de ma distribution (Mandriva).
Sur quel système es-tu ?
Est-ce que ksh est obligatoire ?
Que te renvoie les commandes suivantes dans un shell ksh chez toi :
Sur quel système es-tu ?
Est-ce que ksh est obligatoire ?
Que te renvoie les commandes suivantes dans un shell ksh chez toi :
$ ksh --version
version sh (AT&T Research) 93t 2008-06-24
$ chx1="Texte_du_choix1"
$ echo $chx1
Texte_du_choix1
$ echo ${chx1//_/ }
Texte du choix1
$ echo "${chx1//_/ }"
Texte du choix1
$
Icefan
Messages postés
6
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
21 juin 2011
21 juin 2011 à 08:41
21 juin 2011 à 08:41
Ah d'accord.
Je suis sur Windaube mais j'ai une console Unix via Putty.
Oui.
ksh --version : rien, à moins que je me sois trompé dans la syntaxe ou dans l'endroit de le tapper.
chx1="Texte_du_choix1"
echo $chx1 : Texte_du_choix1
echo ${chx1//_/ } : ${chx1//_/ }: bad substitution
echo "${chx1//_/ }": "${chx1//_/ }": bad substitution
Je suis sur Windaube mais j'ai une console Unix via Putty.
Oui.
ksh --version : rien, à moins que je me sois trompé dans la syntaxe ou dans l'endroit de le tapper.
chx1="Texte_du_choix1"
echo $chx1 : Texte_du_choix1
echo ${chx1//_/ } : ${chx1//_/ }: bad substitution
echo "${chx1//_/ }": "${chx1//_/ }": bad substitution
zipe31
Messages postés
36316
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 544
21 juin 2011 à 08:50
21 juin 2011 à 08:50
Quel Unix ?
Que renvoie :
Que renvoie :
cat /etc/shells echo $SHELL ls -l /bin/ksh
Icefan
Messages postés
6
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
21 juin 2011
21 juin 2011 à 08:58
21 juin 2011 à 08:58
Alors là je ne sais pas ^^' Je ne m'y connais pas beaucoup.
cat /etc/shells : toute une liste de shell (/sbin//sh ; /users/bin/sh ; /users/bin/ksh...
echo $SHELL : /bin/sh
ls -l /bin/ksh : -r-xr-xr-x 2 bin bin 159744 Jul 14 2004 /bin/ksh
cat /etc/shells : toute une liste de shell (/sbin//sh ; /users/bin/sh ; /users/bin/ksh...
echo $SHELL : /bin/sh
ls -l /bin/ksh : -r-xr-xr-x 2 bin bin 159744 Jul 14 2004 /bin/ksh
zipe31
Messages postés
36316
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 544
21 juin 2011 à 11:16
21 juin 2011 à 11:16
Ok ;-\
Donc je disais que chez moi, avec le texte des variables avec les espaces le menu était bien affiché. Par contre chez toi ce n'est pas le cas ?
Essaie de remettre des blancs dans tes variables et de mettre des guillemets autour de tes variables dans le "case" :
Donc je disais que chez moi, avec le texte des variables avec les espaces le menu était bien affiché. Par contre chez toi ce n'est pas le cas ?
Essaie de remettre des blancs dans tes variables et de mettre des guillemets autour de tes variables dans le "case" :
chx1="Texte du choix1"
chx2="Texte du choix2"
...
...
case $choixaction in
#Selection du choix 1
"$chx1")
instructions
break
;;
#Selection du choix 2
"$chx2")
instructions
break
;;
etc.