先日、後輩からset -xで出力される「printf ~」という以下のメッセージを抑制出来ないか?という話をされた。
[root@test-centos ~]# set -x
++ printf '\033]0;%s@%s:%s\007' root test-centos '~'
[root@test-centos ~]#
++ printf '\033]0;%s@%s:%s\007' root test-centos '~'
[root@test-centos ~]# echo "aaaaa"
+ echo aaaaa
aaaaa
++ printf '\033]0;%s@%s:%s\007' root test-centos '~'
[root@test-centos ~]#
この「printf ~」というのは、こちらで指定したコマンドの次に、環境変数PS1(プロンプトに表示されている文字列)の描画前に処理される環境変数「PROMPT_COMMAND」というものに記述されているものだ。
そのため、実行するコマンドの展開をする『set -x』で出力されてしまう、という仕組みになっている。
これを一時的に出力させないようにするには、以下のコマンドを『set -x』実行前に実行させれば良い。
unset PROMPT_COMMAND
なお、永続的に出力させないようにするには、対象のユーザが持つ「.bash_profile」もしくは「/etc/profile」に、以下の一文を記述すれば良い。
export PROMPT_COMMAND='' ``` ![](20150131_000001.jpg)