複数のシェルをバックグラウンドで同時並走させるときは以下のように
コマンドを&(アンパサンド)で繋ぐといいらしいです。
&はリスト演算子に含まれるようです。
$ sh shell_1.sh & sh shell_2.sh & sh shell_3.sh & sh shell_x.sh
もちもん上記のコマンドをshファイルの中に記述して実行することも可能です。
下記ファイルで検証してみました
shell_1.sh
#!/usr/bin/bash
DATETIME=`date +%Y%m%d_%H%M%S_%s`
echo "shell_1.sh start $DATETIME"
DATETIME=`date +%Y%m%d_%H%M%S_%s`
echo "shell_1.sh end $DATETIME"
shell_2.sh
#!/usr/bin/bash
DATETIME=`date +%Y%m%d_%H%M%S_%s`
echo "shell_2.sh start $DATETIME"
DATETIME=`date +%Y%m%d_%H%M%S_%s`
echo "shell_2.sh end $DATETIME"
shell_3.sh
#!/usr/bin/bash
DATETIME=`date +%Y%m%d_%H%M%S_%s`
echo "shell_3.sh start $DATETIME"
DATETIME=`date +%Y%m%d_%H%M%S_%s`
echo "shell_3.sh end $DATETIME"
douji.sh
#!/usr/bin/bash
sh shell_1.sh & sh shell_2.sh & sh shell_3.sh
$ sh douji.sh
出力結果
$ sh douji.sh
shell_2.sh start 20220209_232155_1644416515
shell_1.sh start 20220209_232155_1644416515
shell_3.sh start 20220209_232155_1644416515
shell_1.sh end 20220209_232155_1644416515
shell_2.sh end 20220209_232155_1644416515
shell_3.sh end 20220209_232155_1644416515