错误信息:
complete: usage: complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [name ...]
-bash: complete: -D: invalid option
complete: usage: complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [name ...]
有人能帮我解决这个问题吗?
答案1
当 bash 启动时,它会默认运行一些脚本。运行哪些脚本,取决于多种设置,并且取决于具体情况。
这completion
bash buildin 命令允许用户使用tab自动完成 bash shell 中的命令和文件名。在 bash 下,通常从或脚本completion
启动。~/.bashrc
~/.bash_profile
其中一个脚本似乎存在错误。命令complete
提示应用程序调用方式中存在非法选项。
长话短说:检查~/.bashrc
文件是否有错误。
答案2
MacOS 问题?
对我来说(MacOS Ventura 13.6),该错误-bash: complete: -D: invalid option
是由于系统安装的/bin/bash
shell 太旧引起的:
❯ /bin/bash --version
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin22)
Copyright (C) 2007 Free Software Foundation, Inc.
我已经通过 Brew 安装了较新版本 (https://brew.sh-- brew install bash
),但默认情况下不使用它:
❯ /opt/homebrew/bin/bash --version
GNU bash, version 5.2.15(1)-release (aarch64-apple-darwin22.1.0)
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
MacOS 解决方案!
对我来说,解决方案是运行以下两个命令:
sudo bash -c 'echo /opt/homebrew/bin/bash >> /etc/shells'
chsh -s /opt/homebrew/bin/bash