Gol*_*ver 0 shell bash shell-script text-processing
我有一个文本文件,其中包含用于从数据库中获取一些数据的 bash 命令。每个命令都用换行符分隔。请参见下面的示例:(命令也可以是“ls -l”、“catwhatever.txt”等)
prefetch SRR403012
fastq-dump --fasta 0 SRR403012
my_cpp_program.out SRR403012
...
Run Code Online (Sandbox Code Playgroud)
如何创建一个执行所有这些命令的 bash 脚本?我想要按顺序执行命令的东西。然而!重要的是要注意命令在终止之前需要时间,因为我正在获取大量文件。因此,for 循环也应该等到执行完成。
#!/bin/bash
FILENAME="my_commands.txt"
LINES=$(cat $FILENAME)
for LINE in LINES
do
execute $LINE
done
Run Code Online (Sandbox Code Playgroud)
您的命令列表实际上是一个 shell 脚本,即使没有 shebang(#!/bin/bash顶部的行)。您可以将其指定为 shell 的参数,shell 将执行它,一次一行,等待执行完成:
bash my_commands.txt
Run Code Online (Sandbox Code Playgroud)
或者,如果您的命令实际上并不需要bash,
sh my_commands.txt
Run Code Online (Sandbox Code Playgroud)