Python命令解释器

时间:2015-02-12 18:51:57

标签: python linux bash command-line interpreter

我有一个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()方法?

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调用来接收我想的。