-3

好的,所以我有一个 pythonscript 接受这样的参数

& ./myscript.py argumentishere

你想要做的是读取一个包含多行文本的文本文件,并为每一行执行我的命令,如下所示

& ./myscript.py line1
& ./myscript.py line2
& ./myscript.py line3
ect.ect.ect

如何在 bash 脚本中实现这一点

4

4 回答 4

1
#!/bin/bash

cat input | while read line
do
    ./myscript.py $line
done

您还需要将#!/usr/bin/env pythonmyscript.py 和 chmod 可执行属性的头部添加到 myscript.py

于 2013-11-02T12:08:30.377 回答
1

虽然您可以使用 bash 脚本实现此目的,但可能更简单的方法是使用该xargs实用程序。

xargs -L 1 ./myscript.py <inputfile

bash 的方式是:

while read line
do
    ./myscript $line
done <inputfile
于 2013-11-02T11:53:33.497 回答
1

如果我是你,我会修改 python 脚本以将文件名作为参数,并对每一行执行我想要的操作。

import sys
file = open(sys.argv[1])
for line in file:
    #do your thing here
于 2013-11-02T15:22:51.850 回答
0

你试过这个吗?

while IFS= read -r line; do
    ./myscript.py "$line"
done < file
于 2013-11-02T11:58:22.290 回答