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

先日、後輩から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 ~]#

20150130_000000

この「printf ~」というのは、こちらで指定したコマンドの次に、環境変数PS1(プロンプトに表示されている文字列)の描画前に処理される環境変数「PROMPT_COMMAND」というものに記述されているものだ。
そのため、実行するコマンドの展開をする『set -x』で出力されてしまう、という仕組みになっている。

これを一時的に出力させないようにするには、以下のコマンドを『set -x』実行前に実行させれば良い。

Sponsored Links

unset PROMPT_COMMAND

20150131_000000

なお、永続的に出力させないようにするには、対象のユーザが持つ「.bash_profile」もしくは「/etc/profile」に、以下の一文を記述すれば良い。

export PROMPT_COMMAND=''

20150131_000001

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。