在输入任何命令时,我的环境变量之一也会被打印。
[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、.kshrc
ksh、.zshrc
zsh(始终位于您的主目录中)。配置也可能位于某些系统范围的文件中,例如/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!如果您没有准确地告诉我们您的配置中的内容,我们只能推测。