2015-04-01 80 views
-1

我有我的規格文件%preun標籤下面的腳本:如果沒有其他的shell腳本塊%preun小腳本

if [ $1 -eq 0 ]; then 
echo "Stopping blah service before uninstalling.." 
. /etc/init.d/blahforever stop 
echo "blah service stopped." 
fi 

我得到錯誤「附近意外的標記'科幻'語法錯誤」

但當我添加其他塊它運行良好:

if [ $1 -eq 0 ]; then 
    echo "Stopping blah service before uninstalling.." 
    . /etc/init.d/blahforever stop 
    echo "blah service stopped." 
else 
    echo "I dont need else block" 
fi 

但我不需要其他塊!我如何擺脫它? PS:我試過在病情發生後取出半結腸,仍然沒有幫助。

+0

看起來像它指向/etc/init.d/blahforever中的錯誤 – 2015-04-01 19:05:14

+0

您似乎也已經在腳本中縮進了一些腳本(誰知道還有什麼)。如果您從底部代碼片段中刪除這兩個/ echo行,您是否仍然會遇到該語法錯誤? (也爲什麼點源服務腳本調用?) – 2015-04-01 19:05:32

+0

是的,我嘗試刪除所有回波線,仍然失敗。而且,如果我只是刪除了將會工作的else塊,該腳本就像我說的那樣工作。 – nolimit 2015-04-01 21:19:24

回答

0

這是「./etc/init.d/blahforever stop」行中的shell語法錯誤。

沒有文件被髮送(即讀入當前shell) 稱爲「stop」。

+0

沒有腳本運行良好,正如我所說如果我只添加一個其他塊,整個腳本運行沒有問題! – nolimit 2015-04-02 15:00:47

+0

源代碼「運行」,然後導致錯誤 – 2015-04-02 15:35:07

+0

點源文件可以通過這種方式給出參數。 init腳本通過這個調用獲得'stop'作爲'$ 1'。 – 2015-04-02 19:04:55