
在 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_COMMAND
Bash 在啟動時處理的文件之一中的變數設定不正確。可能的原因可以在那裡找到:
- /etc/設定檔
- /etc/bash.bashrc
- 〜/ .bash_profile
- ~/.bashrc
快速解決方法/測試:
unset PROMPT_COMMAND