如何使用反引号运行 pushd
和 popd
?
每当我在反引号中运行 pushd/tmp
时,我都会得到一个错误:
"No such file or directory - pushd /tmp"
最佳答案
Ruby shell-outs(反引号)每个都在一个新的子 shell 中运行,所以它可能不会像您想象的那样工作:
a = `pwd`
`cd '/tmp'`
b = `pwd`
b == a # => true
b == "/tmp" # => false
此外,您确定 pushd
在您的 shell 中工作吗?如果您想要比反引号语法更有用的东西,也许可以考虑使用 ruby 的 system
或 popen3
。
Dir#chdir
接受一个 block 。这是来自 the docs 的示例如果您只需要在目录中运行一些命令,然后改回:
Dir.chdir("/var/spool/mail")
puts Dir.pwd
Dir.chdir("/tmp") do
puts Dir.pwd
Dir.chdir("/usr") do
puts Dir.pwd
end
puts Dir.pwd
end
puts Dir.pwd
关于ruby - 如何使用反引号运行 "pushd"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739823/