「set -x」を元に戻す方法は?


77

set -xターミナルに入力しました。

ターミナルは、出力の上に最後に実行されたコマンドを出力し続けるため、コマンドは

~]$echo "this is what I see"

返却値

+ echo 'this is what I see'
this is what I see

のmanページはありませんset。どうすればset -xオフにできますか?


8
setbuiltin(少なくともbashでは)シェルコマンドなので、ドキュメントはbashのマニュアルページにあります。manページを検索して、その/^ *SHELL BUILTIN COMMANDSすべてsetとその友人を読んでください!
dg99 14

4
しかし、のためのページがありmanますset!これはPOSIXプログラマーガイドの一部です... 本当にそのシリーズを入手する必要があります...ください?
mikeserv 14

8
Bashにを入力しhelp setます。
200_success 14

@ lonewarrior556回答のいずれかが役立つと思われる場合は、解決策にコメントやマークを付けてください。我々は....支援するために私たちの時間を貢献する
Simply_Me

回答:


77

を使用しset +xます。詳しくは:

$ type set
set is a special shell builtin

setはシェルに組み込まれているため、シェルのドキュメントに記載されています。

一部のシステムにはシェルビルトインのマニュアルページがありますが、これらのマニュアルページはデフォルトのシェルを使用している場合にのみ正しいことに注意してください。Linuxでは、POSIXコマンドを提供するmanページがあります。これは、シェル組み込みコマンドを表示するスタンドアロンユーティリティのmanページがないため表示されます。これらのマニュアルページは、すべてのBourneスタイルのシェル(ダッシュ、bash、* ksh、さらにはzshでも)に対して正しいですが、通常は不完全です。

ロングシェルの組み込みページを検索するためのヒントについては、長いマニュアルページの読み取りと検索を参照してください。

この場合、答えはすべてのBourneスタイルのシェルで同じです。場合はオプションをオンにし、それをオフにします。したがって、トレースをオフにします。読み取る最後のトレースは避けられません(シェルを終了させることを除いて-サブシェルを使用できる場合があります)。set -LETTERset +LETTERset +xset +x(set -x; command to trace; other command to trace); command that is not traced


4
これは良い答えですが、最後の段落に埋め込まれるのではなく、最初に基本的な「set + x」を置くと、数分節約できます。(追加の詳細が役立つと思いました。)
DA

2
{ set +x ;} 2> /dev/nullset +xトレースを非表示にします(Bourneシェルでは機能しません)。いくつかのシェルはまだ出力し+ 2> /dev/nullます。
ステファンシャゼラス16


18

デバッグモードを有効にしました。オフにする必要があります。

抽出フォームhelp set

-ではなく+を使用すると、これらのフラグがオフになります。

タイプ set +x


1
$ set +x # is the opposite of set -x, and will reverse what you typed.

set以下に示すように、manページは見つかりません。

$ type set

set組み込みの特別なシェルです。シェルのmanページに文書化されていますが、ここではbashを想定していますが、次のいずれかの方法で特定の文書を取得することもできます。

$ help set || builtin help set # luckily Bash has builtin help on builtin commands

bashまたはshのマニュアルページは読みやすいですが、整理するのに少し時間がかかります。あなた-xがあなたの設定を解除するために必要な効果的な情報は前に終わりにExit Status:あり、読む:

-ではなく+を使用すると、これらのフラグがオフになります。フラグは、シェルの呼び出し時にも使用できます。現在のフラグのセットは、$-にあります。残りのn個のARGは定位置パラメーターであり、順番に$ 1、$ 2、.. $ nに割り当てられます。ARGが指定されていない場合、すべてのシェル変数が出力されます。


間違いではありませんが、既存の答え以外に何を追加しましたか?
ジェフシャラー

@JeffSchaller直接性と簡潔さのために編集されています。この答えが必要なときは、正しい答えを見つけるためにページ全体を読む必要がありました。実際、私は受け入れられた答えを読むのをあきらめ、そこに行ってhelp setそれを読みました。私は受け入れられた答えを改善しようとしました。unix.stackexchange.com/revisions/149137/4受け入れられましたが、拒否されました。ニュース記事のように、それは最も重要な情報から始まり、読者がいつでも止まるかもしれないと仮定します。次の各文と段落は進行よりも重要ではありません。それはUNIX seの私のSOスタイルです。
dlamblin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.