bash - bash python 如何从 shell 读取 stdin,并将stdout发送到 shell 和 file

  显示原文与译文双语对照的内容
79 5

我想让 python 脚本从 shell ( bash ) 读取标准文件,并将标准文件发送到 shell 以及重定向文件。 我尝试了以下操作:


$ cat test.py


#!/usr/bin/python



val = raw_input("enter val:")


print val



$./test.py | tee out


testing


enter val: testing



$ cat out


enter val: testing



由于某些原因,在键入输入后打印raw_input提示,这意味着我在键入时无法看到提示。 使用bash脚本,我可以得到类似于工作的东西。


$ cat test.sh


#!/bin/bash



echo"enter val:"


read val


echo $val



$./test.sh | tee out


enter val: testing


testing



$ cat out


enter val: testing



时间: 原作者:

120 4

#!/usr/bin/python


import sys



print"enter val:",


sys.stdout.flush()


val = raw_input()


print val



或者


#!/usr/bin/python


import sys



sys.stdout = sys.stderr


val = raw_input("enter val:")


sys.stdout = sys.__stdout__


print val



原作者:
79 1

看到这个 Bug,看起来raw_input将它的提示符写到。

http://bugs.python.org/issue1927

原作者:
...