自分のスクリプト以外のスクリプトに「-x を設定する」方法

自分のスクリプト以外のスクリプトに「-x を設定する」方法

私はまだバグに対処しています別の質問デバッグ情報を取得できないため、回答が得られませんでした。

他のスクリプトを実行するスクリプトがあり、tty が端末から切断される様子を確認する必要があります。

'set -x' をグローバルに実行する方法はありますか? 問題のスクリプトは動的に生成されるため、自分で設定することはできませんが、何が問題なのか確認したいと思います。

答え1

シェルオプションを設定してBashを起動する

によるBashの呼び出しBashマニュアルのセクション、

set組み込みコマンドで使用される1文字オプションはすべて、シェルが呼び出されるときにオプションとして使用できます(set組み込みコマンドを参照)。

これは、オプションとスクリプトのファイル名を引数としてxtrace直接呼び出すことで、オプションを設定したBashスクリプトを実行できることを意味します。例:bash-x

bash -x /path/to/script

すべてのシェルスクリプトのシェルオプションを構成する

「グローバル」と言うと、xtraceBash のすべての非対話型呼び出しにオプションを設定したいということだと思います。これを行うには、環境変数を適切なファイル名に設定し、その内容を次の内容BASH_ENVでファイルを作成します。set -x

export BASH_ENV=~/.bash_env
echo set -x > ~/.bash_env

man ページから:

たとえば、シェル スクリプトを実行するために bash が非対話的に起動されると、BASH_ENV環境内の変数が検索され、そこに変数が存在する場合はその値が展開され、展開された値が読み取られて実行されるファイルの名前として使用されます。

関連情報