繁体   English   中英

在终端中运行重复的命令

[英]Running repetitive commands in terminal

我对运行 shell 命令有点陌生。 目前我在终端中一次执行这些,如下所示:

python dna.py databases/small.csv sequences/1.txt
// result

python dna.py databases/small.csv sequences/2.txt
// result

python dna.py databases/small.csv sequences/3.txt
// result

etc...

有没有办法将所有这些命令放在一个文本文件中并运行一个命令来一次执行它们? 最后,我想将 pipe 这个放到 results.txt 文件中。

使用您选择的文本编辑器并将三个命令粘贴到彼此下方。 保存该文件并打开终端 window。 切换到包含您刚刚创建的文件的文件夹并运行“chmod +x your_file_name_with_python_code_in_it”。

然后在终端“./your_file_name_with_python_code_in_it >> results.txt”中运行该文件

>> 将创建 append 并将您的 python 代码反馈给控制台的日志文件。

您可以迭代在 shell seq上生成的序列

repeat=10
for n in $(seq 1 $repeat);  do python dna.py databases/small.csv sequences/${n}.txt; done

根据 Jetchisel 的建议,您可以支持扩展,这是 2009 年添加的 bash4 功能。

python dna.py databases/small.csv sequences/{1..3}.txt >> results.txt

使用 bash c 型 for 循环

start=1 end=3
for ((n=start;n<=end;n++)); do python dna.py database/small.csv sequences/"$n".txt

这将阻塞您的终端,直到您的进程完成,并且将被视为没有用户交互的前台进程。 这里的重点是进程是否会阻止其他进程的执行,直到它终止。

您可以通过在命令行末尾添加&将前台进程变为后台进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM