0

私は非常に単純で厄介な問題を抱えています。特定のユーザーとしてデータベースを起動しようとしていますが、 * su --session-comman * 失敗しました!

##############################

#!/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を使用しています

4

1 に答える 1

2

エスケープされた二重引用符が問題を引き起こしています。コマンド ラインでは、当然のように機能しません。したがって、シェルはスペースを認識し、ユーザー名を指定するstart"の 2 番目の引数として解釈します。su

コンソールでコマンドラインをエコーすることは本当に重要ですか? おそらく、次のような方が良いでしょう。

su --session-command="${OBJECTDB_HOME}/bin/objectdb.sh start" $JAVA_USER

またはsudo代わりに使用します:

sudo -u $JAVA_USER $OBJECTDB_HOME/bin/objectdb.sh start
于 2011-11-03T16:18:59.040 に答える