net-ssh和远程环境

Ark*_*kan 4 ruby net-ssh

我想使用net-ssh库在我的服务器上执行一些远程命令.

我有以下示例:

Net::SSH::start(host, user, options = {:keys => '~/.ssh/id_rsa'}) do |ssh|
  puts ssh.exec!("echo $PATH")
  ssh.loop
end
Run Code Online (Sandbox Code Playgroud)

结果是:/ 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")
Run Code Online (Sandbox Code Playgroud)

Vla*_*ich 6

你尝试过类似的东西:

ssh.exec!("source /home/you/.zshrc")
puts ssh.exec!("echo $PATH")
Run Code Online (Sandbox Code Playgroud)