我正在尝试通过php安装composer,正如他们的网站中所描述的那样。
php -r "readfile('https://getcomposer.org/installer');" | php但它显示以下错误:
$ php -r "readfile('https://getcomposer.org/installer');" | php
output is not a tty
input is not a tty我在windows7中使用git bash来执行这个命令。在windows命令提示符下,它工作得很好。这个问题只有在我从git bash 2.6.2-64bit运行这个命令时才会发生。
顺便说一句,我已经为windows安装了composer,并且工作正常。但是我不能用这种方式下载composer.phar。如何解决此问题?
发布于 2015-11-10 12:54:17
可能是路径或编码问题:
从新构建和安装的MinGW Git运行的
git ls-remote origin似乎无法输出任何内容,而git ls-remote origin | cat(这是从使用旧MSys/MinGW的怪癖中学到的技巧)只说:output is not a tty(退出代码是127,表示没有找到某些可执行文件,但很难说出是哪一个,因为甚至没有显示到stderr的调试打印语句;似乎在发生崩溃或MinGW()的情况下,stderr不会被刷新)
winpty的别名unalias $(alias | grep winpty | cut -d"=“-f1 | cut -d”“-f2)
但是:
不,我们不能简单地放弃winpty。PHP可以交互运行,也就是说它需要一个合适的Win32控制台。在MinTTY中没有winpty的情况下运行PHP将不会提供控制台实例,只会给您留下一个看起来没有响应的终端。
参见git-for-windows/build-extra@44ed99b、#399和#400,了解通过简单地删除这些别名会造成多大的破坏。
因此,现在,bash控制台与通过管道执行php不兼容(因为第二个| php可能不会从winpty中受益,当程序需要Win32控制台以进行交互使用时,似乎需要使用它)。
如果您使用C:Program Files\Git\bin\bash.exe
instead ofC:\Program Files\Git\git-bash.exe,则该命令可以正常工作。我将它与ConsoleZ结合使用,没有任何问题
这可能是因为与git-bash.exe相反,bash.exe没有使用winpty。
发布于 2016-12-25 01:11:00
VonC的答案是正确的,为了在未来帮助其他人,我想提供一个更直观的解决方案。

$cd C:\path\到\您的\项目
$卷曲-shttps://getcomposer.org/installer| php
$ls
composer.phar现在在项目根目录中可见。$php编写器。phar需要一些要安装的软件包
发布于 2019-08-16 08:19:28
可以使用bash: C:\Program Files\Git\bin\bash.exe输出
https://stackoverflow.com/questions/33622087
复制相似问题