私はUbuntu 14.04.4 LTSを使用し、vnc4serverをインストールしました。 vncdesktopsを起動する基本スクリプトは、bashスクリプトである/etc/init.d/vncserverにあります。これは/etc/vncserver/vncservers.confで指定されたすべてのユーザーが引数を使ってうまく動作します。しかし、ユーザーがbashではなくcshを使用している場合、vncserverスクリプトの構文エラーのためにvncserverコマンドが機能しません。このエラーはここで示したstart()関数で発生します。 ubuntu 14.04.4のvncserver bashスクリプトエラーLTS
start() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Starting $prog: "
ulimit -S -c 0 >/dev/null 2>&1
RETVAL=0
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
DISP="${display%%:*}"
export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
fi
done
}
私は、コマンド「sudoのサービスvncserverを再起動」vncserverをスクリプトの実行を与え、CSHを使用して、ユーザーのために私は、このエラーを与える
。Starting VNC server: 8:test1 [: No match.
ユーザーtest1のは、「CSH使用され、その表示数が8である私は、このエラーはライン
su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
から来ていると私はそれをやっているのか理解が、私は知りません見ることができますなぜブラケットの状態が私にこのエラーを与えているのか、それはcshを使っているユーザのためだけです。 誰かが私に手掛かりを与えることができますか?
「cd〜$ {USER}」はcshで期待どおりに展開されますか? '[-f .vnc/passwd]'が$ {users-home-dir}/.vnc/passwdファイルを探していて、見つからないので、これをテストしたいかもしれません。 Conversly .vnc/passwdファイルは実際にはtest1のホームディレクトリにありますか? – Cwissy
$ {USER}は期待通りにtest1として展開し、.vnc/passwdは〜test1に存在します。 BTWスクリプト自体はbashスクリプトです。 –
tcshをインストールし、csh用のtcshへのリンクを作成しましたが、問題はなくなりました。どうしてか分かりません.. –