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