わかりましたので、そのような引数を取るpythonscriptがあります
& ./myscript.py argumentishere
あなたがしたいのは、複数行のテキストを含むテキストファイルを読み取り、各行に対して次のようにコマンドを実行することです
& ./myscript.py line1
& ./myscript.py line2
& ./myscript.py line3
ect.ect.ect
どうすればbashスクリプトでこれを達成できますか
もし私があなたなら、Python スクリプトを変更して、引数としてファイル名を受け取り、各行で必要なことを行います。
import sys
file = open(sys.argv[1])
for line in file:
#do your thing here
これは bash スクリプトで実現できますが、おそらくxargs
ユーティリティを使用する方が簡単です。
xargs -L 1 ./myscript.py <inputfile
bash の方法は次のようになります。
while read line
do
./myscript $line
done <inputfile
#!/bin/bash
cat input | while read line
do
./myscript.py $line
done
#!/usr/bin/env python
また、myscript.py の head と chmod 実行可能プロパティを myscript.py に追加する必要があります。
これを試しましたか?
while IFS= read -r line; do
./myscript.py "$line"
done < file