3

xtrace on ( set -o xtrace) を使用して出力からコマンドを非表示にする方法はありますか?

DOS では、echo on隠れたコマンドの先頭に@シンボルを付けて回す方法があります。

4

2 に答える 2

4

bash で同様のトリックを見たことはありませんが、サブシェルを使用して、関心のあるコマンドのトレースを一時的に有効にすることができます。

echo "This command is not traced"
(
  set -x
  echo "This command is traced"
)
echo "No longer traced"

環境を変更したいためにサブシェルが適していない場合は、 を実行できますがset -xset +xトレースset +xコマンドのアーティファクトが残ります。

于 2013-03-04T18:34:22.293 に答える
0

あなたはこのようなことをすることができます

# At start of script, or where xtrace may be enabled:
[[ "$SHELLOPTS" =~ xtrace ]] && xtrace_on=1

# Later
set +o xtrace
# Your untraced code here
[[ "$xtrace_on" ]] && set -o xtrace
于 2013-03-04T18:44:02.907 に答える