Сразу оговорюсь, с bash не особо дружу. Но никак не могу понять по каким словам искать решение задачи: принять в скрипт --key=value
Что это? Массив, параметр, опция?
Это называется long options. В Bash встроен обработчик только для short options - это параметры вида -a -b -c 123. Реализовать long options корректно - непростая задача, так как вы должны учитывать возможность присутствия или отсутствия аргумента у параметра, а также магическое сочетание --, которое запрещает обработку любых параметров. Соответственно в Интернете можно наткнуться на реализацию longopt в Bash различной степени извращённости. Кроме того, советую посмотреть в сторону docopt.org/.https://github.com/docopt/docopts
--key=value
это общий принцип, как передавать long options с параметрами.
Либо вы парсите $1 внутри скрипта, либо можете попробовать почитать как пользоваться getopts (не путать с getopt)
Но проще парсить $1, разбив его на две части тем же cut -d "=" -f 2
Просто нужно понимать, что это язык программирования высокого уровня, который предназначен для автоматизации управления внешними утилитами, а не внутренними командами.
И что он отражает специфику и архитектуру операционной системы, в дебрях которой он родился. Bash на windows и bash на Linux - очень разные bash.
А еще - в bash практически нет структур данных. Есть только строка, число и массив, причем типизация не столько динамическая, сколько тип влияет скорее на способ обработки данных, а не на способ их хранения.