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

端末にset -xと入力しました。

これで、端末は最後のコマンドを出力し続けます出力の上で実行すると、コマンド

~]$echo "this is what I see" 

が返されます

+ echo "this is what I see" this is what I see 

ありますsetのマニュアルページがありません。set -xをオフにするにはどうすればよいですか?

コメント

  • setはシェルのbuiltinコマンドであるため(少なくともbashでは)、ドキュメントが見つかりますbash 'のマニュアルページ。マニュアルページで/^ *SHELL BUILTIN COMMANDSを検索して、setとその友達についてすべて読んでください!
  • しかし、あります setmanページ!これはPOSIXプログラマーガイドの一部です… 本当にそのシリーズを入手する必要があります…お願いしますか?
  • Bashにhelp set
  • @ lonewarrior556回答のいずれかが役に立った場合は、コメントしたり、解決策にマークを付けたりしてください。私たちは支援するために時間を費やしています…

回答

set +x。詳細:

$ type set set is a special shell builtin 

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

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

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

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

コメント

  • これは良い答えですが、基本的な"最後の段落に埋め込むのではなく、最初に+ x "を設定します。 (追加の詳細が役立つと思いました。)
  • { set +x ;} 2> /dev/nullset +xトレースを非表示にします(won ' Bourneシェルでは機能しません)。ただし、一部のシェルは引き続き+ 2> /dev/nullを出力します。

回答

set +xでデバッグモードを停止できます。例を参照してくださいページ

回答

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

フォームの抽出help set

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

したがって、set +x

と入力します。

回答

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

、以下を参照してください:

$ type set 

setは特別なシェル組み込みです。シェルのマニュアルページに記載されていますが、ここでは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 It 'は直接性と簡潔さのために編集されています。この答えが必要なとき、私は正しい答えを見つけるためにページ全体を読まなければなりませんでした。実際、私は受け入れられた答えを読むのをあきらめて、help setに行ってそれを読みました。私は受け入れられた答えを改善しようとしました。 unix.stackexchange.com/revisions/149137/4 承認されましたが、拒否されました。ニュース記事のように、それは最も重要な情報から始まり、読者がいつでも停止する可能性があることを前提としています。次の各文と段落は、前の文よりも重要ではありません。 'はUNIXでの私のSOスタイルです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です