文字「a」で始まるディレクトリには多くのシェルスクリプトがあります。これらすべてのシェルスクリプトを一度に実行するにはどうすればよいですか?これを実行するために開発できる他の小さなスクリプトはありますか?
ベストアンサー1
コマンドライン:
for each in path_to_directory/a*.sh ; do bash $each ; done
例:
:~$ ll | grep \.sh
-rw-rw-r-- 1 user user 1476 Май 25 16:07 123.sh
-rw-rw-r-- 1 user user 1176 Май 25 16:09 222.sh
-rw-rw-r-- 1 user user 419 Май 20 14:03 2.sh
-rw-rw-r-- 1 user user 191 Май 20 17:50 3.sh
-rw-rw-r-- 1 user user 9 Июн 2 11:53 a1.sh
-rw-rw-r-- 1 user user 9 Июн 2 11:53 a2.sh
i:~$ cat q1.sh
echo sadf
:~$ cat a1.sh
echo 123
:~$ cat a2.sh
echo 234
:~$ for each in ./a*.sh ; do bash $each ; done
123
234
あるいは、run-partsというコマンドラインユーティリティを使用することもできます。このツールは、ディレクトリ内の複数のスクリプトまたはプログラムを自動的に検索してすべて実行できます。
たとえば、名前が「a」で始まり、「.sh」で終わる/ etcのすべてのスクリプトを実行するには、次のようにします。
$ run-parts --regex '^a.*\.sh$' /etc
"--test"オプションを使用すると、実際に実行せずに実行されるスクリプトの名前を印刷できます。これはテスト目的に役立ちます。
$ run-parts --test ./my_script_directory