मेरी dash
स्क्रिप्ट के रूप में एक पैरामीटर लेता है hostname:port
, अर्थात:
myhost:1234
जबकि पोर्ट वैकल्पिक है, अर्थात:
myhost
मुझे होस्ट और पोर्ट को अलग-अलग वेरिएबल में पढ़ने की जरूरत है। पहले मामले में, मैं कर सकता हूँ:
HOST=${1%%:*}
PORT=${1##*:}
लेकिन यह दूसरे मामले में काम नहीं करता है, जब बंदरगाह छोड़ा गया था; echo ${1##*:}
खाली स्ट्रिंग के बजाय केवल होस्टनाम लौटाता है।
बैश में, मैं कर सकता था:
IFS=: read A B <<< asdf:111
लेकिन वह काम नहीं करता है dash
।
मैं पर स्ट्रिंग विभाजित कर सकते हैं :
पानी का छींटा में, बाहरी प्रोग्राम (लागू बिना awk
, tr
, आदि)?
%%
इसे लालची बनाता है (विरोध के रूप में %
), इसलिए यह वास्तव में ऐसा करता है, कम से कम भाग में; यह साथ काम नहीं करेगा ##
।