python - 在终端中运行重复的命令
问题描述
我对运行 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...
有没有办法将所有这些命令放在一个文本文件中并运行一个命令来一次执行它们?最后,我想将它传送到 results.txt 文件中。
解决方案
您可以迭代在 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
这将阻塞您的终端,直到您的进程完成,并且将被视为没有用户交互的前台进程。这里的重点是进程是否会阻止其他进程的执行直到它终止。
您可以通过&
在命令行末尾添加来将前台进程变为后台进程。
推荐阅读
- python - 如何使用 django 中的更新函数更新数据库表值
- c# - 如何控制 MasterDetailsView 中主项目内视图的可见性
- reactjs - POST 路由返回错误 404,React 应用程序与 Express 服务器?
- c# - 从 winform 搜索按钮提交时未填充 Datagridview
- python - 除了 help() 或 dir() 之外,还有什么更有效的方式来浏览模块函数、对象方法等?
- c - 程序收到信号 SIGSEGV,分段错误。#C语言#
- django - 如果对模板的更改没有反映在浏览器中,可能是什么原因?
- sql - 如何根据列长度拆分字符串并插入表中
- ios - iOS中PDF图像资产的奇怪发光效果?
- python - Python pcolormesh,每个 bin 都有单独的 alpha 值