“输出不是tty”错误意味着什么?


29

我尝试php -i使用命令将输出写入文件,php -i > info并收到以下错误:

output is not a tty

这是什么意思?

git bash在Windows上使用。


嗯..在运行命令的目录中,是否有一个名为“info”的文件或目录?

不,但在运行命令后,它被创建,只有空并输出错误
Max Koretskyi aka Wizard

请尝试“strace php -i> info”然后在这里发布输出..

你使用的是哪个版本的php?命令是否正确创建了信息文件?
michas 2015年

1
我没有写了这个答案的时间,现在,但如果任何应答者要采取的喜欢code.google.com/p/mintty/issues/detail?id=56homepage.ntlworld.com ./jonathan.deboynepollard/FGA/...github.com/git-for-windows/git/issues/399github.com/rprichard/winptygithub.com/docker/toolbox/issues/231手和运行和他们一起,请随意。
JdeBP 2015年

Answers:


18

基于Peh对stackoverflow.com/questions/33622087的评论,对我有用的是什么

如果你使用C:\ Program Files \ Git \ bin \ bash.exe而不是C:\ Program Files \ Git \ git-bash.exe那么命令工作正常


3
这不适合我。我犯了同样的错误。
瑞恩

1
但它今天对我有用!我不知道为什么它几个月前没有用。+1
瑞安

只需在git bash中键入bash
Rivenfall


8

如果您碰巧在引擎盖下使用winpty,则必须通过-Xallow-non-tty参数来解决此问题:

$ winpty python -c 'print("hello")' | grep h
stdout is not a tty

$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello

使用的时候解决这个问题,我node通过conemu
jakub。18年

2

我相信这个问题更多的是关于Git Bash如何处理管道,而不是PHP,因为我在Windows上遇到了使用Python的相同症状。在目前最投票的答案不适合我的工作。根据此评论后续评论,它可能会在几个月后发挥作用。但我不耐烦所以我选择使用原生Windows命令提示符,瞧,它的工作原理!

不适用于Git Bash

rayluo@DESKTOP-10B0N4G MINGW64 ~
$ python -c "print('hello world')" > test.txt
stdout is not a tty

在命令提示符下工作

(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt
(env27) C:\Users\rayluo>type test.txt
hello world

1

您正在将终端(tty)的输出重定向到文件。因此,您的输出不再是tty。

这条信息非常有意义。但是,这不应该是一个错误。

我无法在Linux系统上重现这种行为。


对不起,我对错误的地方做了评论。请运行“strace php -i”并粘贴输出(最后几行)。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.