#bash #shell #scripting
#bash #оболочка #сценарии
Вопрос:
Кто-нибудь знает конструкцию bash, в которой вы указываете delimeter и получаете две переменные ( $ @ или $! или что-то в этом роде, я думаю) значения?
Например:
—option=false должно быть указано с помощью параметра ‘=’ delimeter, и в одной переменной будет слово ‘option’, тогда как в другой переменной хранится слово ‘false’. Кто-нибудь знает?
PS: Пожалуйста, никаких решений sed, awk или IFS. Я знаю о них, но я запрашиваю конкретную конструкцию bash 🙂
Комментарии:
1. Если вы разделите «—option =false» на =, не будет ли первая переменная содержать «—option», а не просто «option»? В противном случае, похоже, происходит дополнительный анализ с учетом параметров.
Ответ №1:
Как указано на странице руководства Bash, вы можете использовать расширение параметров для решения ваших проблем.
# split first argument on equal sign (left=right)
left=${1%%=*}
right=${1#*=}
Комментарии:
1. Спасибо! Это было именно то, что я искал! Сработало как шарм!
Ответ №2:
Я считаю, что здесь уместна программа GNU getopt (если она доступна, конечно). Он поддерживает длинные параметры.