我创建了一个需要在服务器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以避免这种情况?
预先感谢
答案 0 :(得分:1)
它正在服务器B的.
目录中寻找它。由于您没有更改目录,因此当前目录是您的主目录,而不是包含脚本的目录。更改Script2.sh
以使用Script3
而不是./Script3
的完整路径,或者在运行脚本之前,应更改到包含脚本的目录。
result=$(ssh ServerB 'cd /path/to/script; ./Script2.sh 2020-01-01 2020-03-12')