如何使用反引号来更改目录?

时间:2013-07-29 23:39:43

标签: ruby shell irb backticks

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

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

我直接通过终端运行命令,我更改目录就好了。它也适用于我当地的Mac机箱,所以我不确定发生了什么。

1 个答案:

答案 0 :(得分:5)

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

如果您将cd命令与另一个命令相关联,您将看到它有效,但只影响子进程:

`cd / && ls`

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

Dir.chdir("/")

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