Bash

腳本在啟動時未正確執行

  • February 14, 2015

我有一個非常簡單的腳本來回顯一些東西然後啟動一個 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

引用自:https://unix.stackexchange.com/questions/184847