我有一个python脚本我想以这种方式从bash脚本运行:
#!/bin/bash
python -c "$(< input_file)" &> output_file
在python脚本中我有一些不同的方法,因此输入文件包含以下内容:
from script import *; method_1(); method_2();
问题是,在这两种方法中,它们都有input()
方法,需要用户输入(这不能更改)。
那么如何在input_file
(某种新行参数)中传递参数,以便将其传递给input()
或method_1()
中的method_2()
方法?
答案 0 :(得分:1)
执行此操作的便捷方法是使用“此处文档”:
$ cat myscript
#!/bin/bash
python -c "$(< input_file)" &> output_file << END
3
4
END
这是一个独立的测试用例:
$ cat input_file
height = input("Height:\n")
width = input("Width:\n")
print "Area: ", height*width
$ bash myscript
(no output)
$ cat output_file
Height:
Width:
Area: 12
答案 1 :(得分:0)
我相信input
函数只是从标准输入中读取。
所以你应该能够将数据管道(或重定向)到input
的python调用来接收我想的。