我需要从 jenkins 中运行一个 shell 脚本,以便在构建后提交更改。将构建部署到远程服务器不是问题,所以新构建就在那里。我需要做的就是提交它。
为此,我需要使用 shell 脚本通过 ssh 登录到该远程服务器,到目前为止一切正常:
#!/user/bin/expect -f
spawn ssh myusername@url
expect "password:"
send "mypassword\r"
interact
所以现在当我登录时,我想运行一些命令:cd/path/to/repository; svn commit -m "一些更改日志"
我试过类似的方法:
#!/user/bin/expect -f
spawn ssh -o "LocalCommand cd /path/to/repository" myusername@url
expect "password:"
send "mypassword\r"
但它就是行不通,因为我不知道该怎么做。
如果有人知道怎么做,请告诉我。
远程服务器在 linux 上运行,jenkins 在 osx 上运行。
最佳答案
我用 expect 找到了解决方案:
#!/user/bin/expect -f
spawn ssh myusername@url
expect "password:"
send "mypassword\r"
expect "some server prompt"
send "cd /path/to/repository\r"
send "svn commit -m 'Some change log'\r"
编辑:
这个解决方案似乎只是偶尔有效。我的意思是提交更改。
关于linux - 从脚本运行远程命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327379/