1
%x{ echo hi } 

似乎分叉了/bin/sh。我宁愿/bin/bash. 有没有办法设置它?我能想到的最好的事情是

%x {/bin/bash -c 'echo hi'}

但这并不能像它应该的那样报告输出。此外,这是一件普遍的事情:我只是从不想要/bin/sh,我一直想要/bin/bash

4

2 回答 2

3

把它写在你的 Ruby 代码的某个地方。

ENV["SHELL"] = "/bin/bash"
于 2013-06-11T12:47:13.410 回答
1

我希望默认 shell/bin/sh是硬编码的,以便尽可能便携。要使用 bash,您可以执行以下操作:

def bash(cmd)
  IO.popen(["/bin/bash", "-c", cmd]) {|io| io.read}
end

output = bash %q(cat <<< "hello world")
p output
"hello world\n"
于 2013-06-11T19:54:20.827 回答