每次我在 macos 上打开终端时,它都会显示以下错误消息:上次登录:-bash:完成:-D:无效选项完成:使用情况

每次我在 macos 上打开终端时,它都会显示以下错误消息:上次登录:-bash:完成:-D:无效选项完成:使用情况

错误信息:

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 启动时,它会默认运行一些脚本。运行哪些脚本,取决于多种设置,并且取决于具体情况

completionbash buildin 命令允许用户使用tab自动完成 bash shell 中的命令和文件名。在 bash 下,通常从或脚本completion启动。~/.bashrc~/.bash_profile

其中一个脚本似乎存在错误。命令complete提示应用程序调用方式中存在非法选项。

长话短说:检查~/.bashrc文件是否有错误。

答案2

MacOS 问题?

对我来说(MacOS Ventura 13.6),该错误-bash: complete: -D: invalid option是由于系统安装的/bin/bashshell 太旧引起的:

❯ /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

相关内容