Mój dash
skrypt przyjmuje parametr w postaci hostname:port
np .:
myhost:1234
Natomiast port jest opcjonalny, tj .:
myhost
Muszę odczytać hosta i port w osobne zmienne. W pierwszym przypadku mogę wykonać:
HOST=${1%%:*}
PORT=${1##*:}
Ale to nie działa w drugim przypadku, gdy port został pominięty; echo ${1##*:}
po prostu zwraca nazwę hosta zamiast pustego ciągu.
W Bash mogłem:
IFS=: read A B <<< asdf:111
Ale to nie działa dash
.
Mogę podzielić na ciąg :
w desce rozdzielczej, bez odwoływania się do zewnętrznych programów ( awk
, tr
, itd.)?
%%
sprawia, że jest chciwy (w przeciwieństwie do %
), więc faktycznie robi to, przynajmniej częściowo; to nie zadziała ##
.