『set -x』コマンドで出力される「printf ~」という出力を抑制する

先日、後輩から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)