好的,所以我有一个 pythonscript 接受这样的参数
& ./myscript.py argumentishere
你想要做的是读取一个包含多行文本的文本文件,并为每一行执行我的命令,如下所示
& ./myscript.py line1
& ./myscript.py line2
& ./myscript.py line3
ect.ect.ect
如何在 bash 脚本中实现这一点
#!/bin/bash
cat input | while read line
do
./myscript.py $line
done
您还需要将#!/usr/bin/env python
myscript.py 和 chmod 可执行属性的头部添加到 myscript.py
虽然您可以使用 bash 脚本实现此目的,但可能更简单的方法是使用该xargs
实用程序。
xargs -L 1 ./myscript.py <inputfile
bash 的方式是:
while read line
do
./myscript $line
done <inputfile
如果我是你,我会修改 python 脚本以将文件名作为参数,并对每一行执行我想要的操作。
import sys
file = open(sys.argv[1])
for line in file:
#do your thing here
你试过这个吗?
while IFS= read -r line; do
./myscript.py "$line"
done < file