我正在尝试使用 ProcessBuilder 从 Java 执行 bash 脚本 我的代码是:
Process createUser = buildProcess(
"/bin/su",
"-c",
"\"/opt/somedir/testdir/current/bin/psql",
"--command",
commandForUserCreation,
/* "'select * from users'", */
"--dbname",
"mydbname\"",
"myuser"
);
问题是我收到错误:
/bin/su: unrecognized option '--dbname'
如果我将 echo
放在命令的第一位,它会在 bash 中打印正确的命令,如果我复制/粘贴此命令,它会起作用!
请帮我解决这个问题。
最佳答案
您需要提供要由 su
作为单个参数执行的整个命令。试试这个:
Process createUser = buildProcess(
"/bin/su",
"-c",
"/opt/vmware/vpostgres/current/bin/psql --command " + commandForUserCreation + " --dbname mydbname",
myuser
);
关于Java ProcessBuilder 和 bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21525705/