我有一个非常简单和恼人的问题,我正在尝试以特定用户身份启动我的数据库,但* su --session-comman * d对我失败了!
##############################
#!/bin/bash
objectdb-start.sh
OBJECTDB_HOME=/opt/java-tools/objectdb-2.3.0_04
JAVA_USER=javauser
CMD="su --session-command=\"${OBJECTDB_HOME}/bin/objectdb.sh start\" ${JAVA_USER}"
echo $CMD
$CMD
##############################
然后出现了这个错误:
[root@Taturana bin]# ./objectdb-start.sh
su --session-command="/opt/java-tools/objectdb-2.3.0_04/bin/objectdb.sh start" javauser
su: user start" does not exist
有什么想法吗?
PS:我正在使用Fedora 15
答案 0 :(得分:1)
转义的双引号会给您带来麻烦。它们在命令行上不起作用,正如您显然期望的那样。因此,shell会查看空格并将start"
解释为su
的第二个参数,并指定用户名。
在控制台上回显命令行真的很重要吗?你可能会更喜欢这样的事情:
su --session-command="${OBJECTDB_HOME}/bin/objectdb.sh start" $JAVA_USER
或者改为使用sudo
:
sudo -u $JAVA_USER $OBJECTDB_HOME/bin/objectdb.sh start