Mon dash
script prend un paramètre sous la forme de hostname:port
:
myhost:1234
Alors que le port est facultatif, c'est-à-dire:
myhost
J'ai besoin de lire l'hôte et le port dans des variables distinctes. Dans le premier cas, je peux faire:
HOST=${1%%:*}
PORT=${1##*:}
Mais cela ne fonctionne pas dans le deuxième cas, lorsque le port a été omis; echo ${1##*:}
renvoie simplement le nom d'hôte, au lieu d'une chaîne vide.
Dans Bash, je pourrais faire:
IFS=: read A B <<< asdf:111
Mais cela ne fonctionne pas dash
.
Puis - je diviser la chaîne sur :
au tableau de bord, sans faire appel à des programmes externes ( awk
, tr
, etc.)?
%%
rend gourmand (par opposition à %
), il le fait donc, au moins en partie; cela ne fonctionnerait pas avec ##
.