gpt4 book ai didi

java - 如何从 java 调用带有标志/开关的 shell 脚本

转载 作者:行者123 更新时间:2023-12-01 18:41:29 26 4
gpt4 key购买 nike

我有一个 shell 脚本,例如 testDB.sh,它以开关/标志的形式占用凭据(参数)。例如,要执行此脚本,我执行以下操作

./testDB.sh -u 用户名 -p 密码。

为了从java调用它,我遵循传统的方法。

Runtime.getRuntime().exec(new String[] {"bash","/<path to test script>/testDB.sh","<username>","<password>"});

以上似乎并没有帮助解决这个问题:(

我想知道如何通过从 java.lang.String 传递标志/开关形式的参数来调用此脚本。我如何传递这个 -u 和 -v 开关?任何帮助将不胜感激

最佳答案

您还需要传递标志:

new ProcessBuilder("<script path>/testDB.sh",
"-u", username,
"-p", password
);

我强烈建议不要使用任何其他解决方案,因为它们很脆弱,并且当脚本的任何参数中的某个位置有空格时它们会突然失败。

关于java - 如何从 java 调用带有标志/开关的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19812832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com