首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stty: stdin不是终端吗?

stty: stdin不是终端吗?
EN

Stack Overflow用户
提问于 2013-11-20 12:47:54
回答 4查看 7.4K关注 0票数 2

我正在尝试使用我在网上找到的说明来安装Homebrew for OS X 10.8.5。我这样做是为了更新我的Ruby版本,因为我得到了这个错误:

代码语言:javascript
复制
Use RbConfig instead of obsolete and deprecated Config.

当我尝试运行时:

代码语言:javascript
复制
gem install sqlite3

但是,当我运行以下命令时:

代码语言:javascript
复制
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

我得到另一个错误,它说:

代码语言:javascript
复制
stty: stdin isn't a terminal
Failed during: /bin/stty raw -echo
stty: stdin isn't a terminal
Failed during: /bin/stty -raw echo

有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2014-03-04 05:52:09

当我想为Mac OSX 10.9.1安装homebrew时,我遇到了与您完全相同的情况。通过在终端中键入以下内容,我可以找到:

代码语言:javascript
复制
curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install | ruby

这对我很管用。在自制软件问题板上有一个关于这个问题的帖子。

https://github.com/Homebrew/homebrew/issues/19276

票数 2
EN

Stack Overflow用户

发布于 2014-10-05 20:52:04

对于那些对仍然使用“管道到ruby”技术感兴趣的人来说,自制软件的github位置已经改变。下面是更新到新位置的命令:

代码语言:javascript
复制
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install | ruby
票数 2
EN

Stack Overflow用户

发布于 2013-11-20 13:57:48

当标准输入是文件时,它不是终端,因此在stty的标准输入上设置终端属性将不起作用。

乍一看这听起来很愚蠢,但是您可能会发现可以使用stdout或stderr作为stty的输入,它将调整终端。因此:

代码语言:javascript
复制
system("stty cbreak -echo <&2");

因此,您可以从https://raw.github.com/mxcl/homebrew/go下载脚本,并将读取system "/bin/stty raw -echo"的代码行修改为system "/bin/stty raw -echo <&2"

然后将修改后的文件压缩到ruby -e

部分摘自:(unix/C) "stty: stdin isn't a terminal" when using system() function

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20087585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档