使用带有 bundle show 和 gnome-open 的管道

sno*_*guy 4 command-line nautilus pipe

(我在 stackoverflow 上了一个几乎相同的问题,但没有回应。我希望问问 ubuntu 是一个更好的地方,所以我在这里重新提问。)

我没有经常使用管道,想知道我是否做错了什么。如果我运行:

bundle show jquery-rails
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

/home/u1104/.rvm/gems/ruby-1.9.3-p194/gems/jquery-rails-2.0.0
Run Code Online (Sandbox Code Playgroud)

如果我跑:

gnome-open /home/u1104/.rvm/gems/ruby-1.9.3-p194/gems/bootstrap-sass-2.0.0
Run Code Online (Sandbox Code Playgroud)

Nautilus 打开到正确的位置。所以我想省去将一个命令的结果复制并粘贴到另一个命令的麻烦,我认为这就是管道的用途......但是当我运行以下命令时:

bundle show jquery-rails | gnome-open
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Usage: gnome-open <url>
/home/u1104/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/vendor/thor/shell/basic.rb:63:in `flush': Broken pipe (Errno::EPIPE)
    from /home/u1104/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/vendor/thor/shell/basic.rb:63:in `say'
...
Run Code Online (Sandbox Code Playgroud)

有没有办法让我的结果bundle show在鹦鹉螺中自动打开?

Jer*_*err 6

您希望将bundle命令的输出作为参数传递给gnome-open,而不是作为输入传递给它。试试这个:

gnome-open $(bundle show jquery-rails)
Run Code Online (Sandbox Code Playgroud)