OVH Cloud OVH Cloud

ksh test ...

2 réponses
Avatar
Denis L'Excellent
Bonjour,

Je sollicite votre culture ksh pour m'assister dans la résolution d'un
problème probablement simplet :

Je reçois en entrée d'un script une chaine de caractère dont je voudrais
tester qu'une partie de la valeur, comment peut on faire ?

Concrètement, l'argument 1 a pour valeur 'MonProg essai toto' et je
voudrais dans mon shell tester la valeur de MonProg indépendemment des
valeurs essai et toto.

Merci pour votre aide ...


Denis.

2 réponses

Avatar
Stephane Chazelas
2003/11/13, 11:47(+01), Denis L'Excellent:
Je reçois en entrée d'un script une chaine de caractère dont je voudrais
tester qu'une partie de la valeur, comment peut on faire ?

Concrètement, l'argument 1 a pour valeur 'MonProg essai toto' et je
voudrais dans mon shell tester la valeur de MonProg indépendemment des
valeurs essai et toto.



Plusieurs solution:

first=${1%%" "*}
# syntaxe POSIX

set -f
IFS=" "
set -a array -- $1 # découpe $1 et met les elts dans un tableau
first=${array[0]}
# non portable

first=`expr "x$1" : 'x([^ ]*)'`
# pour tout shell bourne-like

Tu peux aussi faire:

case $1 in
"MonProg "*) ...;;
esac

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

Avatar
Denis L'Excellent