マスター スクリプトによって呼び出されるすべてのスクリプトを一覧表示するにはどうすればよいでしょうか?

マスター スクリプトによって呼び出されるすべてのスクリプトを一覧表示するにはどうすればよいでしょうか?

マスター スクリプトによって呼び出されるすべてのスクリプトを (再帰的に) リストします。例:

master.sh

a.sh >> this script calls a1.sh, a2.sh, a3.sh etc
b.sh >> this one calls b1.sh, b2.sh, something.sh, etc.sh..
c.sh > similarly.

これはスクリプトの tree コマンドに似ています。

出力は次のようになります

master.sh
-a.sh
 |- a1.sh
    |-something.sh
    |-something_else.sh
-a2.sh
 |-x.sh
 |-y.sh
-a3.sh
...

答え1

これを行う最良の方法は ですpstree。これは、実行中のすべてのプロセスをわかりやすいツリー形式で一覧表示します。-Hオプションを使用して、特定のコマンド(ピッド)。以下の例では、pgrepの PID を取得するために を使用していますmaster.sh

pstree -H `pgrep master.sh` |grep -A 2 master.sh 
 |-bash---master.sh-+-a1.sh---something.sh
 |                  |-a2.sh
 |                  |-a3.sh

コマンドpsは必要なことも実行できます。psコマンドはすべておいしいコーヒーを淹れること以外は:

ps xjf

master.shこれにより、(実際には)によって起動されたすべてのプロセスがリストされます。全てプロセス( によって起動されたものを含むmaster.sh)をツリー形式で表示します。

\_ master.sh
|   \_ a1.sh
|       \_ something.sh
|       \_ something.sh
|   \_ a2.sh
|   \_ a3.sh

ここでは関連する出力のみを示していますが、上記のコマンドでは、PID、プロセス ステータスなど、その他のさまざまな情報も提供されます。

関連情報