Bash
腳本在啟動時未正確執行
我有一個非常簡單的腳本來回顯一些東西然後啟動一個 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 伺服器工作正常,但即使我不希望它仍然顯示輸出。這對於 start) 和 stop) 情況都是一樣的。
感謝@steeldriver,我想通了。我變了,
command &> /dev/null
到,
command > /dev/null 2>&1
我也變了,
echo
到,
/bin/echo