作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!