2

我已经安装了最新的 Git Bash (msysgit)。如果我创建一个名为 test.rb 的简单 ruby​​ 文件,其内容如下:

#!/usr/bin/env ruby

puts `dir`
puts `ls -al`

运行ruby test.rb将在第一个上打印目录,但在第二个puts上找不到。它显然是在生成一个 DOS shell 而不是 msysgit shell。lsputs

如何指定子进程应在 msysgit shell 下运行?

此外,子 shell 应该从调用 shell 继承环境变量(特别是 PATH)。

4

1 回答 1

0

截至发稿时的答案是不可能的。msysgit 中的 spawn 进程是一个 CMD 进程。然而,我们可以让 CMD 进程调用一个 ruby​​ 脚本来解决这个限制。

于 2013-05-16T07:24:28.617 回答