複数の階層仮想シェルプロセス(他のプロセスのプロセスなど)をどのように実行しますか?

複数の階層仮想シェルプロセス(他のプロセスのプロセスなど)をどのように実行しますか?

各プロセスが異なるプロセスを実行する複数のプロセスを実行して、非常に長いプロセスブランチを作成したいと思います。

私は試した:

$ bash -c '(bash -c "sleep 20"); sleep 20' &
$ pstree $(pgrep -fn bash)

親プロセスと子プロセスを作成しますが、構文をあまり処理せずにさらに10〜20個のプロセスを作成できるトリックや簡単な方法はありますか?

答え1

再帰スクリプトを作成できます。たとえば、ファイルから/tmp/run

#!/bin/bash
depth=${1:-5}
f(){
 let depth--
 if [ $depth -gt 0 ]
 then $0 $depth
 else sleep 10
 fi
}
f

それでは。chmod +x /tmp/run/tmp/run 10

関連情報