为什么我在 bash 中调用函数时会出现 _parse_usage 错误?

Gud*_*son 3 command-line bash functions auto-completion

所以我收到以下错误:

bash: _parse_usage: line 16: syntax error near unexpected token `('
bash: _parse_usage: line 16: ` -?(\[)+([a-zA-Z0-9?]))'
bash: error importing function definition for `_parse_usage'
bash: _longopt: line 14: syntax error near unexpected token `('
bash: _longopt: line 14: ` --+([-a-z0-9_]))'
bash: error importing function definition for `_longopt'
Run Code Online (Sandbox Code Playgroud)

显然仅在函数调用上。

Gud*_*son 6

事实证明,错误来自bash-completion包( apt install bash-completion)。重新安装没有效果,所以没有损坏。经过一番尝试和错误后,我将这个错误的触发因素追溯到一条看起来无辜的线

set -a
Run Code Online (Sandbox Code Playgroud)

在来自 .bashrc 的文件中

因此,导出 .bashrc 中的所有新变量并不是一个好主意,除非您使用以下命令再次关闭该选项

set +a
Run Code Online (Sandbox Code Playgroud)