一部のコンテンツをエコーしてからVNCサーバーを起動する非常に簡単なスクリプトがあります。コマンドラインから実行すると正常に動作しますが、起動時に実行すると奇妙な結果が表示されます。これは私のスクリプトです。
### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO
#! /bin/sh
# /etc/init.d/vncboot
USER=root
HOME=/root
export USER HOME
case "$1" in
start)
echo -e "[ \e[32mok\e[39m ] Starting VNC Server"
#Insert your favoured settings for a VNC session
/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24 &> /dev/null
;;
stop)
echo -e "[ \e[32mok\e[39m ] Stopping VNC Server"
/usr/bin/vncserver -kill :1 &> /dev/null
;;
*)
echo "Usage: /etc/init.d/vncboot {start|stop}"
exit 1
;;
esac
exit 0
最初のエコーが正しく実行されません。私にこれを与えました、
-e [ \e[32mok\e[39m ] Starting VNC Server
これにより、VNCサーバーは正常に動作しますが、望ましくない場合でも出力が表示されます。これは開始)と停止)の両方で同じです。
答え1
@steeldriver ありがとうございます。わかりました。私は変わった、
command &> /dev/null
到着する、
command > /dev/null 2>&1
私も変わった、
echo
到着する、
/bin/echo