Bash 为每个命令和 echo 命令输出奇怪的环境行

Bash 为每个命令和 echo 命令输出奇怪的环境行

在 Amazon Linux 实例上,对于输入到 bash 中的每个命令,它都会输出

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

输入什么命令并不重要。例如

$ date
date
Mon Oct 14 17:15:31 UTC 2019
printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

$ ls -all
ls -all
total 1776
drwx------ 5 ec2-user ec2-user    4096 Oct 14 17:10 .
drwxr-xr-x 3 root     root        4096 Sep  2 14:18 ..
-rw------- 1 ec2-user ec2-user    5853 Oct 11 21:43 .bash_history
-rw-r--r-- 1 ec2-user ec2-user      18 Aug 30  2017 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user     193 Aug 30  2017 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user     124 Aug 30  2017 .bashrc
drwx------ 3 ec2-user ec2-user    4096 Oct 14 15:22 .cache
drwx------ 4 ec2-user ec2-user    4096 Oct 14 15:22 .local
drwx------ 2 ec2-user ec2-user    4096 Sep  2 14:18 .ssh
printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

并且它也会回应命令。

这里发生了什么?我该如何阻止这种行为?

答案1

我假设 Bash 在启动时处理的某个文件中的变量PROMPT_COMMAND设置不正确。可能的原因如下:

  • /etc/配置文件
  • /etc/bash.bashrc
  • 的〜/ .bash_profile
  • ~/.bashrc

快速解决方法/测试:

unset PROMPT_COMMAND

相关内容