我正在尝试使用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
);