OVH Cloud OVH Cloud

Ksh pour les grands

2 réponses
Avatar
Nicolas Ecarnot
Bonjour,

En ksh, j'utilise depuis peu la syntaxe de recherche de chaîne suivante :

TOTO="chosetruc"
TITI=${TOTO%%truc}

ce qui me donne "chose" dans $TITI.

Maintenant, si j'ai TOTO="chose*" et que je souhaite enlever l'étoile, j'ai
beau essayer...

TITI=${TOTO%%*}
ou
TITI=${TOTO%%\*}

...mon shell m'insulte.

Vous sauriez mieux lui parler ?

--
Nicolas Ecarnot

2 réponses

Avatar
Stephane Chazelas
2004-02-02, 14:22(+00), Nicolas Ecarnot:
[...]
Maintenant, si j'ai TOTO="chose*" et que je souhaite enlever l'étoile, j'ai
beau essayer...

TITI=${TOTO%%*}
ou
TITI=${TOTO%%*}

...mon shell m'insulte.
[...]


TITI=${TOTO%"*"}

TITI=${TOTO%'*'}

TITI=${TOTO%?}

star='*'
TITI=${TOTO%"$star"}

Si ton shell ne supporte pas ${TOTO%%*}, c'est qu'il est buggé.

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
Nicolas Ecarnot
Stephane Chazelas wrote in
news::

TITI=${TOTO%"*"}

TITI=${TOTO%'*'}

TITI=${TOTO%?}

star='*'
TITI=${TOTO%"$star"}



Après un bon nombre de tests, il s'avère que seule la syntaxe
TITI=${TOTO%?}
fonctionne.

C'est pénible car incompréhensible et non justifié.

Si ton shell ne supporte pas ${TOTO%%*}, c'est qu'il est buggé.


/bin/sh par défaut, sous FreeBSD 5.1 R.

Merci à toi Stéphane.

--
Nicolas Ecarnot