2014-04-03 61 views
3

我想我的nginx服務器上運行此腳本的Dropbox,但即時得到:bash腳本語法錯誤:意外字(預期「做」)

Syntax error: word unexpected (expecting "do") 

我複製粘貼的腳本的網站,我嘗試刪除特殊字符,但我仍然得到相同的錯誤。

腳本:

#!/bin/sh 
# /etc/init.d/dropbox 
### BEGIN INIT INFO 
# Provides:   dropbox 
# Required-Start: $network $syslog $remote_fs 
# Required-Stop:  $network $syslog $remote_fs 
# Should-Start:  $named $time 
# Should-Stop:  $named $time 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: Start and stop the dropbox daemon for debian/ubuntu 
# Description:  Dropbox daemon for linux 
### END INIT INFO 

DROPBOX_USERS="root" 
start() { 
    echo "Starting dropbox..." 
    for dbuser in $DROPBOX_USERS; do 
     start-stop-daemon -b -o -c $dbuser -S -x /home/$dbuser/.dropbox-dist/dropboxd 
    done 
} 

stop() { 
    echo "Stopping dropbox..." 
    for dbuser in $DROPBOX_USERS; do 
     start-stop-daemon -o -c $dbuser -K -x /home/$dbuser/.dropbox-dist/dropboxd 
    done 
} 

status() { 
    for dbuser in $DROPBOX_USERS; do 
     dbpid=`pgrep -u $dbuser dropbox` 
     if [ -z $dbpid ] ; then 
      echo "dropboxd for USER $dbuser: not running." 
     else 
      echo "dropboxd for USER $dbuser: running." 
     fi 
    done 
} 


case "$1" in 
    start) 
    start 
    ;; 

    stop) 
    stop 
    ;; 

    restart|reload|force-reload) 
    stop 
    start 
    ;; 

    status) 
    status 
    ;; 

    *) 
    echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}" 
    exit 1 

esac 

exit 0 
+0

開始從腳本中刪除行/塊,直到不再出現錯誤。當你不明白問題時,最好的減少方法是通過試驗和錯誤。 –

+0

只需執行'bash -x'進行調試。很多未引用的變量可能會導致其他問題,但不要考慮具體的錯誤。 – BroSlow

+0

嘗試使用$ {DROPBOX_USERS} –

回答

11

也許你管理當您複製並粘貼到插入Windows行結尾。如果您有dos2unix,請使用它。 (dos2unix腳本文件)否則,有一些類似的實用程序。

+0

我正在嘗試這個現在 – Undermine2k

+0

所以這個修復了其他錯誤現在我越來越:'/etc/init.d/dropbox:#:'not found – Undermine2k

+0

@ Undermine2k:這將是僞BOM Windows喜歡在UTF-8文本文件的開頭插入,不必要的恕我直言。使用服務器*上的文本編輯器*,刪除並重新輸入第一行(#!/ bin/sh)。 – rici

-1

爲什麼你有

/home/$dbuser/.dropbox-dist/dropboxd 

或更換變量。

/home/root/.dropbox-dist/dropboxd 

它不應該是

/root/.dropbox-dist/dropboxd 

/$dbuser/.dropbox-dist/dropboxd 

你認真允許收存箱中/root

又爲什麼for dbuser in DROPBOX_USERS; do重新分配?而不是

dbuser=$DROPBOX_USERS 
+0

Downvote用於光顧那些對「root」用法有不同看法的人。 –

相關問題