データベースからいくつかのデータをインポートするための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