如何在不同服务器上的另一个Shell脚本中运行Shell脚本?

时间:2020-03-12 18:54:37

标签: linux bash shell

我创建了一个需要在服务器A中执行的shell脚本(脚本1);使用脚本1,我需要执行驻留在服务器B中的另一个Shell脚本(脚本2)。

我可以使用以下行做到这一点:

result=$(ssh ServerB /path/to/script/Script2.sh 2020-01-01 2020-03-12)

问题是我没有编辑权限的脚本2使用./Script3调用了另一个Shell脚本,我收到了一个错误提示

"./Script3 : Not found"

我相信其背后的原因是它正在服务器A中寻找./Script3,而不是在服务器B中寻找它。

如何执行脚本1以避免这种情况?

预先感谢

1 个答案:

答案 0 :(得分:1)

它正在服务器B的.目录中寻找它。由于您没有更改目录,因此当前目录是您的主目录,而不是包含脚本的目录。更改Script2.sh以使用Script3而不是./Script3的完整路径,或者在运行脚本之前,应更改到包含脚本的目录。

result=$(ssh ServerB 'cd /path/to/script; ./Script2.sh 2020-01-01 2020-03-12')