Bash shell脚本中出现意外的文件结尾错误

Bash shell脚本中出现意外的文件结尾错误,bash,Bash,您好,我是学习脚本的新手,当我尝试运行以下脚本时,会出现以下错误: ./snortscript.sh: line 168: unexpected EOF while looking for matching `"' ./snortscript.sh: line 173: syntax error: unexpected end of file 在centos 7中尝试运行脚本以运行snort服务时会发生这种情况 这是剧本 错误发生在第168行和第172行 在脚本中,请参见第34行和第35行

您好,我是学习脚本的新手,当我尝试运行以下脚本时,会出现以下错误

./snortscript.sh: line 168: unexpected EOF while looking for matching `"'
./snortscript.sh: line 173: syntax error: unexpected end of file
在centos 7中尝试运行脚本以运行snort服务时会发生这种情况


这是剧本

错误发生在第168行和第172行
在脚本中,请参见第34行和第35行

#OPTIONS="-A fast -b -d -D -i eth0 -u snort -g snort -c /etc/snort/snort.conf -l
/var/log/snort"
注释从第34行开始,但在第35行有一个新行。因此,你应该这样写:

#OPTIONS="-A fast -b -d -D -i eth0 -u snort -g snort -c /etc/snort/snort.conf -l /var/log/snort"
在一行中。这将修复您所遇到的错误。请注意,在您提出的问题中,语法突出显示是如何混乱的。这一点也很清楚

脚本中还有两个错误。一个是在
第38行中,在
开始之前,您必须在
处断开新行。。。启动行。如果[“$ALERTMODE”X=“X”],更正的代码应为:

# use on the startup line
if [ "$ALERTMODE"X = "X" ]; then
ALERTMODE=""
...
fi
if [ "$NO_PACKET_LOG"X = "1X" ]; then
另一个是在
第75行,我们有
fiif[“$NO_PACKET_LOG”X=“1X”];然后
,应该是:

# use on the startup line
if [ "$ALERTMODE"X = "X" ]; then
ALERTMODE=""
...
fi
if [ "$NO_PACKET_LOG"X = "1X" ]; then

再次断线。脚本似乎没有从源代码正确复制,因此格式混乱。

错误是第168行的错误用法提示。将其更正为:

echo "Usage: $0 {start|stop|restart|status}"

您有一个不匹配的
,请始终先运行代码,如果仍然有问题,请在此处询问。问题是行
/var/log/snort”
。正如David所说,首先使用shellcheck。我投票决定以打字错误告终。你的密码。