1

我试图通过在 Ruby 中使用反引号来更改目录。我在 Ubuntu 12.04 机器上,这是我得到的错误:

irb(main):003:0> `cd /`
(irb):3: command not found: cd /
=> ""

我直接通过终端运行命令,我更改目录就好了。它在我本地的 Mac 机器上也可以正常工作,所以我不确定发生了什么。

4

1 回答 1

5

当您使用刻度线运行 shell 命令时,它们将在无法更改父工作目录的子进程中运行。

如果您将该cd命令与另一个命令链接,您将看到它可以工作,但只会影响子进程:

`cd / && ls`

要更改父进程的工作目录,请使用 Ruby 命令Dir.chdir([string])

Dir.chdir("/")

相关信息可以在这篇文章中找到:“ exec the cd command in a ruby​​ script

于 2013-07-29T23:57:02.770 回答