我想使用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)
你尝试过类似的东西:
ssh.exec!("source /home/you/.zshrc")
puts ssh.exec!("echo $PATH")
Run Code Online (Sandbox Code Playgroud)
?
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |