ファイルを繰り返し行を実行する方法

ファイルを繰り返し行を実行する方法

データベースからいくつかのデータをインポートするためのbashコマンドを含むテキストファイルがあります。各コマンドは改行文字で区切られます。以下の例をご覧ください。 (コマンドは「ls -l」、「catwhatever.txt」などです。)

prefetch SRR403012
fastq-dump --fasta 0 SRR403012
my_cpp_program.out SRR403012
...

これらすべてのコマンドを実行するbashスクリプトをどのように作成できますか?私は順番にコマンドを実行したいと思います。しかし!注意すべき点の1つは、多数のファイルをインポートしているため、これらのコマンドが終了するまでに少し時間がかかることです。したがって、forループも実行が完了するのを待つ必要があります。

#!/bin/bash

FILENAME="my_commands.txt"
LINES=$(cat $FILENAME)

for LINE in LINES
do
        execute $LINE
done

ベストアンサー1

#!/bin/bashコマンドリストは、shebang(一番上の行)がなくても実際にはシェルスクリプトです。これをシェルの引数として指定でき、シェルは実行が完了するまで一度に1行ずつ実行します。

bash my_commands.txt

または、コマンドに実際に必要でないbash場合

sh my_commands.txt

おすすめ記事