我正在尝试构建一个CLI应用程序,该应用程序将git存储库夹住,创建分支和CD中的CD中。我能够实现它,除了我必须将CD CD到新克隆的存储库的部分。通过上述Ruby脚本,更改正在运行Ruby脚本的终端中目录的最佳方法是什么。
Dir.chdir "#{z}"
仅更改脚本内部的目录,但不在终端中更改。
我尝试编写一个辅助Ruby脚本,该脚本执行CD并在我的第一个Ruby脚本中以Backticks的形式称为失败。
为了进行测试,我试图制作辅助Ruby脚本,将其cds cds cd到先前的目录。
sidescript.rb
puts "cd .."
,在我的主题中,我有,
`ruby ./sidescript.rb`
我知道Ruby脚本执行将当前终端叉并开始使用,这就是为什么诸如" System CD [My_path]"或Exec之类的命令不起作用的原因。
是否有可能在当前终端上编写命令来更改目录(而不是Ruby应用程序的分叉终端(?
据我所知,不,你不能。您(也许(这样做的唯一方法是使用ptrace
系统调用,但是即使那样,您仍需要使用可以支持它的自定义终端。
但是,您可以做的是靠您的sidescript.rb
的精神。但是,您必须直接从终端执行它,而不是在主脚本中执行它:
# sidescript.rb
puts 'cd my/new/path'
# In your terminal
$(ruby sidescript.rb)
您可以尝试这样的尝试
`cd path_to_directory && ruby sidescript.rb`