我有一个bash代码(Mybash1.sh
),其中需要传递结果
另一个包含Python的bash代码(Mybash2.sh
)
这是密码。我的bash1.sh
#! /bin/bash
# Mybash1.sh
cut -f1,3 input_file.txt | sort | ./Mybash2.sh
Mybash2.sh是这样的:
^{pr2}$我的问题是“输出.txt“Mybash2.sh
中没有结果。
有没有正确的方法在Mybash2.sh
中执行Python?在
请注意,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()
在myscript1.sh中,您正在向myscript2.sh传递一个管道,因此,这是myscript2.sh的某种STDIN。您应该从myscript2.sh读取该STDIN,而不接受输入参数。例如myscript2.sh
最后,为什么所有这些依赖关系?你不能用Python或shell做所有事情吗??
在python中,您希望拥有
file2 = sys.stdin
。然后:
编辑:我刚刚看到了fileinput文档,如果您将'-'提供给文件输入.input(),它将读取stdin,因此在Python中没有任何更改的情况下,这应该可以工作:
^{pr2}$相关问题 更多 >
编程相关推荐