我已经安装了最新的 Git Bash (msysgit)。如果我创建一个名为 test.rb 的简单 ruby 文件,其内容如下:
#!/usr/bin/env ruby
puts `dir`
puts `ls -al`
运行ruby test.rb
将在第一个上打印目录,但在第二个puts
上找不到。它显然是在生成一个 DOS shell 而不是 msysgit shell。ls
puts
如何指定子进程应在 msysgit shell 下运行?
此外,子 shell 应该从调用 shell 继承环境变量(特别是 PATH)。