我想使用 net-ssh 库在我的服务器上执行一些远程命令。
我有以下示例:
Net::SSH::start(host, user, options = {:keys => '~/.ssh/id_rsa'}) do |ssh|
puts ssh.exec!("echo $PATH")
ssh.loop
end
结果是:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
我的问题是我的 PATH 没有按应有的方式加载。
我还应该有一些 RVM 路径,以及在我的 .zshrc 中定义的自定义路径。
如何更改此行为以让 net-ssh 使用我的 .zshrc 加载我的默认环境?
解决方案:
puts ssh.exec!("source ~/.zshrc; echo $PATH")