Il mio dash
script accetta un parametro sotto forma di hostname:port
, ovvero:
myhost:1234
Considerando che il porto è facoltativo, cioè:
myhost
Devo leggere l'host e la porta in variabili separate. Nel primo caso, posso fare:
HOST=${1%%:*}
PORT=${1##*:}
Ma ciò non funziona nel secondo caso, quando la porta è stata omessa; echo ${1##*:}
restituisce semplicemente il nome host, anziché una stringa vuota.
In Bash, potrei fare:
IFS=: read A B <<< asdf:111
Ma questo non funziona dash
.
Posso dividere stringa su :
nel cruscotto, senza invocare programmi esterni ( awk
, tr
, ecc)?
%%
rende avido (al contrario di %
), quindi in realtà lo fa, almeno in parte; non funzionerebbe con ##
.