文字 "a" で始まるディレクトリからすべてのシェルスクリプトを実行します。

文字

文字「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

おすすめ記事