/etc/bashrc:

/etc/bashrc:

在输入任何命令时,我的环境变量之一也会被打印。

[root@appdynamics home]# ls
ls
192.168.71.2  192.168.71.50  karti  lost+found  postgres
printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

我怎样才能解决它打印的所有命令?

外壳类型:Bash

这是提示命令和提示变量的输出

[root@appdynamics home]# echo $PROMPT_COMMAND
printf "\033]0 %s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"


[root@appdynamics home]# echo $promptvars    
printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

/etc/bashrc:

# are we an interactive shell?
if [ "$PS1" ]; then
  if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
        else
            PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
    screen)
        if [ -e /etc/sysconfig/bash-prompt-screen ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
        else
            PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
    *)
        [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
        ;;
      esac
  fi
  # Turn on checkwinsize

答案1

printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

当您使用该命令时,就会出现这种情况bash -v。要摆脱它,请发出exit命令。

答案2

显然你的提示设置有问题。检查你的 shell 配置文件;适用.bashrc于 bash、.kshrcksh、.zshrczsh(始终位于您的主目录中)。配置也可能位于某些系统范围的文件中,例如/etc/bash.bashrc/etc/zshrc。也有可能配置放错了位置,例如在~/.profile~/.bash_profile或 中/etc/profile

您所看到的提示符看起来像是一个由 shell 执行以构造提示符的命令。也许这就是bash,有人写了PS1='printf …'意思PROMPT_COMMAND='printf …'。但这只是众多可能性中的一种。检查配置文件以查看PS1变量是如何定义的,以及其他与 shell 相关的设置,例如bash 中的PROMPT_COMMAND变量和选项。promptvars

如果你无法弄清楚,请发布你的 shell 配置文件。并且一定要说明您正在使用哪种 shell!如果您没有准确地告诉我们您的配置中的内容,我们只能推测。

相关内容