У меня есть код bash (Mybash1.sh
), в котором нужно передать результат
к другому bash-коду (Mybash2.sh
), содержащему Python
Вот коды. Mybash1.sh
#! /bin/bash
# Mybash1.sh
cut -f1,3 input_file.txt | sort | ./Mybash2.sh
Mybash2.sh это:
#! /bin/bash
#Mybash2.sh
python mycode.py foo.txt <("$@") > output.txt
# do something for output.txt
У меня проблема в том, что "output.txt" в Mybash2.sh
не содержит результата.
Есть ли правильный способ выполнить Python в Mybash2.sh
?
Обратите внимание, что mycode.py
будет работать, если я запустлю его на промежуточном временном
файл предоставлен Mybash1.sh
. Но я хотел избежать этого, так как я позвоню Mybash2.sh
во многих случаях в пределах Mybash1.sh
.
Фрагмент mycode.py
выглядит следующим образом:
if __name__ == "__main__":
import sys, os, fileinput
progName = os.path.basename(sys.argv[0])
if len(sys.argv) != 3:
sys.exit('Usage: ' + progName + ' file1 file2')
file1 = fileinput.input(sys.argv[1])
file2 = fileinput.input(sys.argv[2])
# do something for file1 and file2
file1.close()
file2.close()