当我启动 bash 会话时,如何修复一堆被垃圾邮件发送的声明命令?

当我启动 bash 会话时,如何修复一堆被垃圾邮件发送的声明命令?

每当我打开 bash 终端时,无论使用哪个终端客户端,我的输出都会被一堆declare -x列出各种环境变量的消息淹没。以下是一个例子:

declare -x COLORTERM="truecolor"
declare -x COMMAND_MODE="unix2003"
declare -x HISTFILESIZE="57265949261"
declare -x HOME="/Users/(redacted)"
declare -x LC_ALL="en_US.UTF-8"
declare -x LOGNAME="(redacted)"
declare -x OLDPWD
declare -x PATH="path variable lol"
declare -x PWD="/Users/(redacted)/Downloads"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_AUTH_SOCK="/private/tmp/com.apple.launchd.uIiqL6BM38/Listeners"
declare -x TERM="xterm-256color"
# etc 

重要的提示:我使用的是5.1.12(1)-release通过 homebrew 安装的bash 版本/usr/local/bin/bash。但是,我使用此替代 bash 安装没有遇到任何其他问题。当我使用它的命令(如bash)以交互模式执行任何 shell 时,我没有收到输出垃圾邮件。

在此先感谢您的帮助!

答案1

export如果在一行中有一个单独的输出,则可能会发生您看到的输出:

  • $HOME/.bashrc
  • $HOME/.bash_profile
  • /etc/profile

您可以尝试以下步骤:

  1. 您可以尝试做的第一件事是 export在 shell 提示符下输入其自身,看看它是否会产生相同的输出。

  2. 然后检查export这些文件中是否有一行(以上所列):

    grep -HnE $'^( )*export( |\t)*$' $HOME/.bashrc $HOME/.bash_profile /etc/profile
    

    (上面的 grep 命令用于检查单词 export 本身,该单词在行尾前或后是否有 0 个或更多空格或制表符,这种方式适用于 Mac 甚至 Linux)

  3. 然后,您可以注释掉文件中显示匹配的行。

相关内容