В Bash (4.2.10(1)-release) подстановка шаблона ${name/asd/fgh} (которая в man bash названа Pattern substitution) у меня по разному работает из командной строки и из скрипта.Есть скрипт:
#!/bin/bash
string="name $( echo -e "\t" ) = some value = more"
string="${string/*([[:space:]])=/=}"
echo "Have '${string}'."
Если запустить скрипт, то результат:
Have 'name = some value = more'.
А если напрямую в командной строке дать подряд эти строки, то пробелы перед первым '=' в строке успешно вырезаются:
Have 'optionName= some = value'.
Как это объяснить? Не пойму имеет ли отношение к вопросу фраза из мана: шаблон разворачивается так же, как разворачиваются имена файлов (вольный перевод).
Как скриптом сделать это - отрезать пробельные символы перед первым "равно"?