Mein dash
Skript verwendet einen Parameter in Form von hostname:port
:
myhost:1234
Während der Port optional ist, dh:
myhost
Ich muss den Host und den Port in separate Variablen lesen. Im ersten Fall kann ich tun:
HOST=${1%%:*}
PORT=${1##*:}
Dies funktioniert jedoch nicht im zweiten Fall, wenn der Port weggelassen wurde. echo ${1##*:}
Gibt einfach den Hostnamen anstelle einer leeren Zeichenfolge zurück.
In Bash könnte ich tun:
IFS=: read A B <<< asdf:111
Das funktioniert aber nicht dash
.
Kann ich aufgeteilt auf Zeichenfolge :
in Bindestrich, ohne externe Programme aufzurufen ( awk
, tr
usw.)?
%%
macht es gierig (im Gegensatz zu %
), also tut es dies tatsächlich, zumindest teilweise; es würde nicht funktionieren mit ##
.