0

我有两个 shell 脚本;让我们称这些 script1 和 script2。

在 script1 中,我调用 script2。当我从本地终端调用 script1 时,它工作正常,但是当我像这样通过 ssh 启动此命令时:

plink.exe -ssh hostname -l user -pw password "path to script1/script1"

我收到此错误:

找不到脚本 2。

现在我可以在script1里面放一个绝对路径来调用script2,但问题是script2调用其他脚本等等……

我可以避免 ssh 从 root 中查找命令吗?

4

2 回答 2

1

在 script1 中,尝试在脚本开头添加此内容是否有帮助:

cd $(dirname "$0")

或者围绕对 script2 的调用调用 pushd/popd。

pushd $(dirname "$0")
relative_path_for_script2/script2 arg1 arg2 ...
popd

如果在从终端手动调用时,您需要script1从特定目录执行,例如/tmppushd该目录。

于 2013-05-15T13:46:38.937 回答
0

设置PATHinscript1或 in 调用它的代码。

于 2013-05-15T15:41:56.517 回答