Meu dashscript usa um parâmetro na forma de hostname:port, ou seja:
myhost:1234
Considerando que a porta é opcional, ou seja:
myhost
Eu preciso ler o host e a porta em variáveis separadas. No primeiro caso, eu posso fazer:
HOST=${1%%:*}
PORT=${1##*:}
Mas isso não funciona no segundo caso, quando a porta foi omitida; echo ${1##*:}simplesmente retorna o nome do host, em vez de uma string vazia.
No Bash, eu poderia fazer:
IFS=: read A B <<< asdf:111
Mas isso não funciona dash.
Posso dividir corda no :no traço, sem invocar programas externos ( awk, tr, etc.)?
%%torna ganancioso (ao contrário de %), então ele realmente faz isso, pelo menos em parte; não iria funcionar ##.