Я попытался установить bash-завершение для MSYS bash, но, похоже, он содержит некоторые синтаксические ошибки. Он выдает следующего сообщениеЗавершение Bash не работает для MSYS bash. Синтаксическая ошибка Regex
bash: /usr/local/share/bash-completion/bash_completion: line 625: syntax error in conditional expression: unexpected token `('
bash: /usr/local/share/bash-completion/bash_completion: line 625: syntax error near `^(\'
bash: /usr/local/share/bash-completion/bash_completion: line 625: ` if [[ $cur =~ ^(\$\{?)([A-Za-z0-9_]*)$ ]]; then'
вот код, который не удается
# Complete variables.
# @return True (0) if variables were completed,
# False (> 0) if not.
_variables()
{
if [[ $cur =~ ^(\$\{?)([A-Za-z0-9_]*)$ ]]; then
[[ $cur == *{* ]] && local suffix=} || local suffix=
COMPREPLY+=($(compgen -P ${BASH_REMATCH[1]} -S "$suffix" -v -- \
"${BASH_REMATCH[2]}"))
return 0
fi
return 1
}
Возможно, приведенный выше код предназначен для более поздней версии bash, а не «BASH_VERSION = '3.1.17 (1) -release» (по крайней мере, в MSYS, который я установил). Любые эксперты Bash хотят прокомментировать? Удачи. – shellter