1

这个问题与bash script 中的 Fool python 的 os.isatty有点相反。我需要 python 脚本认为它的标准输入连接到 tty。

特别是,我需要使用一些脚本,它会根据 sys.stdin.isatty() 改变其行为。但是当在 bash 循环中调用 python 时,stdin.isatty() 返回 false

cat 'file.txt' | while read ENTRY
do
python -c "import sys; print sys.stdin.isatty()"
done

那么有没有办法包装那个调用,所以python会认为它是从tty调用的。

4

1 回答 1

1

在您的情况下,您可以尝试单独重定向 Python 脚本的输入:

cat 'file.txt' | while read ENTRY
do
  python -c "import sys; print sys.stdin.isatty()" < /dev/tty
done
于 2013-11-04T11:00:13.833 回答