2015-04-01 84 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