Limiter la longueur d'une variable

Résolu
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


8 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
quel shell ?
pas besoin du echo
NOM=${NOM:0:31}
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Salut,

Quel shell ? Quelle version ?
0
dispou
 
AIX 5.3
Ca me met toujours la même erreur
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
que répond echo $SHELL
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dispou
 
/usr/bin/ksh
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Quelle version de ksh ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
et pourtant
ksh ~ $ NOM="123456789901234"   
ksh ~ $ NOM=${NOM:0:5}   
ksh ~ $ echo $NOM   
12345   
ksh ~ $ 

que répond ksh --version
0
dispou
 
Ca me donne la même chose lorsque je saisis ça
Par contre, ça plante lorsque c'est lancé au travers du script
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
Par contre, ça plante lorsque c'est lancé au travers du script
la première ligne du script est bien #!/bin/ksh
0
dispou
 
Oui, c'est bien ça.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
peut-on voir le script ?
0
dispou
 
--version: 0403-010 A specified flag is not valid for this command.
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
echo $KSH_VERSION
0
dispou
 
Version M-11/16/88f
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Si c'est bien la version "88", elle n'a pas l'air de gérer la substitution de paramètres ;-((

man ksh88
0
dispou
 
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
0