我在bash中有无限循环,我需要将domain.txt文件中的每一行作为参数传递给python脚本,该脚本一次只能接受一个,当它遍历domain.txt文件中的所有行时,它会移动到另一个任务。
示例(第一行和第二行):
#!/bin/bash
#!/usr/bin/env python3
while true #foo
do #foo
python3 script.py -d $(sed -n '1p' < domain.txt) && python3 script.py -d $(sed -n '2p' < domain.txt) #foo
done #foo
这种方式有效,但它根本不是最佳的,如果我将第三行添加到我的 .txt 文件中,除非我编辑 bash 脚本,否则它将被忽略 - 我计划有大约 500-1000 行
答案1
如果你的 python 脚本一次只能接受一个参数,并且你确实无法编辑和修复它,那么你将不得不执行以下操作:
while read -r line; do
python3 script.py "$line" && python3 foobar.py
done < domain.txt
这将迭代 中的所有行domain.txt
,将每一行保存为$line
然后传递到您的script.py
.