-3

わかりましたので、そのような引数を取るpythonscriptがあります

& ./myscript.py argumentishere

あなたがしたいのは、複数行のテキストを含むテキストファイルを読み取り、各行に対して次のようにコマンドを実行することです

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

どうすればbashスクリプトでこれを達成できますか

4

4 に答える 4

1

もし私があなたなら、Python スクリプトを変更して、引数としてファイル名を受け取り、各行で必要なことを行います。

import sys
file = open(sys.argv[1])
for line in file:
    #do your thing here
于 2013-11-02T15:22:51.850 に答える
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
#!/bin/bash

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

#!/usr/bin/env pythonまた、myscript.py の head と chmod 実行可能プロパティを myscript.py に追加する必要があります。

于 2013-11-02T12:08:30.377 に答える
0

これを試しましたか?

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