Конструкция Bash для извлечения двух значений из команд типа:»—option=false»?

#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 (если она доступна, конечно). Он поддерживает длинные параметры.