gpt4 book ai didi

ruby - 如何使用反引号运行 "pushd"?

转载 作者:太空宇宙 更新时间:2023-11-03 17:01:05 25 4
gpt4 key购买 nike

如何使用反引号运行 pushdpopd

每当我在反引号中运行 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​​ 的 systempopen3

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com