Bash 為每個指令輸出奇怪的環境行並回顯指令

Bash 為每個指令輸出奇怪的環境行並回顯指令

在 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

我假設PROMPT_COMMANDBash 在啟動時處理的文件之一中的變數設定不正確。可能的原因可以在那裡找到:

  • /etc/設定檔
  • /etc/bash.bashrc
  • 〜/ .bash_profile
  • ~/.bashrc

快速解決方法/測試:

unset PROMPT_COMMAND

相關內容