【发布时间】:2015-06-06 13:38:51
【问题描述】:
我的规范文件 %preun 标记中有以下脚本:
if [ $1 -eq 0 ]; then
echo "Stopping blah service before uninstalling.."
. /etc/init.d/blahforever stop
echo "blah service stopped."
fi
我收到“意外标记 `fi' 附近的语法错误”错误
但是当我添加 else 块时它运行良好:
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
但我不需要 else 块!我该如何摆脱它? PS:我尝试在条件后删除分号,但仍然没有帮助。
【问题讨论】:
-
这似乎指向 /etc/init.d/blahforever 中的错误
-
您似乎也在该更改中缩进了一些脚本(谁知道还有什么)。如果你从底部的 sn-p 中删除那两条 else/echo 行,你还会得到那个语法错误吗? (还有为什么点源服务脚本调用?)
-
是的,我确实尝试删除所有回声线,但仍然失败。如果我只是删除 else 块,脚本就可以正常工作。
-
@EtanReisner 删除缩进似乎有效!
-
你是什么意思“删除缩进似乎工作”?那没有意义。您可以将 exact 行粘贴到您的 scriptlet 中吗?
标签: bash shell centos rpm rpmbuild