bash脚本,它执行提示用户的python脚本

时间:2014-07-24 03:04:18

标签: python bash

我有一个python脚本,有时会提示用户输入以形式输入 raw_input('please provide foo')

我有一个bash脚本,其中包括执行该python脚本:

NUM_OUTPUT=$(python -i create_lookup_txtfiles.py data-dir=/data/ad6813/pipe-data/Bluebox/raw_data/dump to-dir=/data/ad6813/caffe/data_info/$TASK_NAME bad-min=$BAD_MIN)

我想运行这个bash脚本,并在需要时提供输入(作为用户,通过交互式shell)到python脚本的提示。

但是当我运行bash脚本时,我没有看到python提示。

我也试过没有-i旗帜,但没有用 有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

很难区分提示字符串和脚本输出,因此需要使用不同的文件从Python编写提示。下面是tty的示例,但您也可以使用stderr作为提示:

bash脚本:

m=$(python d.py)
echo "OUTPUT $m"

python脚本:

import os
tty=os.open("/dev/tty", os.O_RDWR)
os.write(tty, "Enter> ");
s=raw_input("")
print s

相同的bash脚本也应该与stderr提示一起使用:

python脚本:

import sys 
sys.stderr.write("Enter> ");
s=raw_input("")
print s