私はまだバグに対処しています別の質問デバッグ情報を取得できないため、回答が得られませんでした。
他のスクリプトを実行するスクリプトがあり、tty が端末から切断される様子を確認する必要があります。
'set -x' をグローバルに実行する方法はありますか? 問題のスクリプトは動的に生成されるため、自分で設定することはできませんが、何が問題なのか確認したいと思います。
答え1
シェルオプションを設定してBashを起動する
によるBashの呼び出しBashマニュアルのセクション、
set組み込みコマンドで使用される1文字オプションはすべて、シェルが呼び出されるときにオプションとして使用できます(set組み込みコマンドを参照)。
これは、オプションとスクリプトのファイル名を引数としてxtrace
直接呼び出すことで、オプションを設定したBashスクリプトを実行できることを意味します。例:bash
-x
bash -x /path/to/script
すべてのシェルスクリプトのシェルオプションを構成する
「グローバル」と言うと、xtrace
Bash のすべての非対話型呼び出しにオプションを設定したいということだと思います。これを行うには、環境変数を適切なファイル名に設定し、その内容を次の内容BASH_ENV
でファイルを作成します。set -x
export BASH_ENV=~/.bash_env
echo set -x > ~/.bash_env
man ページから:
たとえば、シェル スクリプトを実行するために bash が非対話的に起動されると、
BASH_ENV
環境内の変数が検索され、そこに変数が存在する場合はその値が展開され、展開された値が読み取られて実行されるファイルの名前として使用されます。