Il mio dashscript 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 ##.