执行提示用户输入的Python脚本的bash脚本
我有一个Python脚本,有时候会要求用户输入一些信息,像这样:
raw_input('请提供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脚本,并在需要的时候通过交互式命令行给Python脚本的提示输入内容。
但是当我运行bash脚本时,我看不到Python的提示信息。
我也试过不加-i
这个选项,但还是没用。
有没有办法解决这个问题呢?
1 个回答
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