【发布时间】:2020-05-02 13:22:56
【问题描述】:
我创建了一个 .sh 文件来将文件从一台服务器复制到另一台服务器(scp 命令),该文件在从 shell 运行文件时工作正常(将文件复制到目标)。
但我尝试使用命令从 Java 运行相同的文件
Runtime.getRuntime().exec(myShellScript)
执行命令但不复制文件。我从sh 文件中得到了回显,这意味着执行了 sh 文件,但没有复制任何文件。有什么想法吗?
【问题讨论】:
-
你能用 .sh 文件和它的内容显示确切的代码吗?
-
由于 all shell 脚本不会发生这种情况,我们需要一个 minimal reproducible example -- 一个特定的 shell 脚本示例实际上是 发生。
-
由于您的脚本可以
echo内容到标准输出,顺便说一句,一些好的开始位置是运行pwd(检查它是否在您期望的目录中运行),set -x(到将它所做的一切记录到 stderr)和echo "$PATH"(确保正确设置了强制环境变量)。 -
脚本可能试图告诉您出了什么问题。确保您可以看到错误消息(在 stderr 上),而不仅仅是回声。要获取示例错误消息以查找以验证 stderr 是否可见,您可以使用
echo "My Error" >&2或ls /filenotfound -
可能与
#!/字符串有关?