Limiter la longueur d'une variable
Résolu
dispou
-
dispou -
dispou -
Bonjour à tous,
Je souhaite, dans un script sous AIX limiter à 32 caractères le contenu d'une variable.
J'ai donc ajouté la ligne suivante :
NOM=$(echo ${NOM:0:31})
Mais ca me retourne
0403-011 The specified substitution is not valid for this command.
Ou peut bien se trouver l'erreur ?
Merci d'avance.
Dipsou
Je souhaite, dans un script sous AIX limiter à 32 caractères le contenu d'une variable.
J'ai donc ajouté la ligne suivante :
NOM=$(echo ${NOM:0:31})
Mais ca me retourne
0403-011 The specified substitution is not valid for this command.
Ou peut bien se trouver l'erreur ?
Merci d'avance.
Dipsou
8 réponses
-
hello
quel shell ?
pas besoin du echoNOM=${NOM:0:31} -
Salut,
Quel shell ? Quelle version ?
-
-
que répond echo $SHELL
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
et pourtant
ksh ~ $ NOM="123456789901234" ksh ~ $ NOM=${NOM:0:5} ksh ~ $ echo $NOM 12345 ksh ~ $
que répond ksh --version
-
-
Es-tu sûr que ton shell supporte la syntaxe "$(commande)" ?
Essaye plutôt avec les quotes inverses : 'commande'
PS. Ce p*tain d'éditeur de CCM ne supporte toujours pas les quotes inverses ;-((
Donc les quotes autour de l'expression sont bien obtenues avec Alt Gr + 7 (le 7 du pavé alphanumérique)
Édit : Ne pas tenir compte de ce thread, un petit tour sur la man page (voir plus bas) permet de voir que la syntaxe est compatible. -
-
-
-
-
-
-
-
Si c'est bien la version "88", elle n'a pas l'air de gérer la substitution de paramètres ;-((
man ksh88
-
-
Merci à tous pour votre aide précieuse, je me suis finalement rabattu sur un 'echo $NOM | cut -c1-32'qui fait le job.
Merci encore