我有一个有趣的问题,我似乎无法弄明白。
我有一个基本脚本,可以提取配置信息并将其重定向到文件:
cat /etc/something > 1
cat /etc/something-else > 2
我的数据收集完成后,我会运行一个“解析器”,提供有关支票的信息:
#58
id="RHEL-06-000001"
ruleid="The system must require passwords to contain at least one special character."
if grep -G [a-z] 1; then
ocredit=`cat 1 | grep -v "^#" | awk '{print $2}'`
if [ "$ocredit" -le -1 ]; then
result="Not A Finding"
todo="None"
else
result="Open"
todo="The current value is $ocredit. This is less than the minimum requirement of - 1."
fi
else
result="Open"
todo="The option is not configured"
fi
echo "$id, $ruleid, $result, $todo" >> Findings.csv
#59
id="RHEL-06-000002"
ruleid="The system must require passwords to contain at least one lowercase alphabetic character."
if grep -G [a-z] 2; then
lcredit=`cat 2 | awk -F"=" '{print $2}'`
if [ "$lcredit" -le -1 ]; then
result="Not A Finding"
todo="None"
else
result="Open"
todo="The current value is $lcredit. This is less than the minimum requirement of -1."
fi
else
result="Open"
todo="The system is not configured to require at least one lowercase alphabetical charatcer in passwords."
echo "$id, $ruleid, $result, $todo" >> Findings.csv
或远程接近的东西。
我发生了大约250次这样的检查,但是我的代码在前58次运行然后停止,不再将内容重定向到checks.csv。
脚本过早完成后我确实收到错误,说明
./checker.sh: line 2898: syntax error: unexpected end of file
这是我的文件的结尾,但我似乎无法弄清楚它是如何逃避到脚本中的那一点。
这个踢球者,直到大约半个小时前才开始工作,而且它已经难倒了。
你可以帮帮我吗?答案 0 :(得分:2)
你似乎错过了第二行之后的fi
:
else
result="Open"
todo="The system is not configured to require at least one lowercase alphabetical charatcer in passwords."
## HERE ##
echo "$id, $ruleid, $result, $todo" >> Findings.csv
这可能会在遇到问题时导致bash解析器出现问题,导致bash
尝试查找丢失的fi
时出现EOF错误。
答案 1 :(得分:1)
这可能意味着你有一个未公开的if
声明或类似声明。 Bash按需读取简单的命令,但是当它出现这样的复杂语句时,它想要读取整个if
语句及其内容。如果它仍然在尝试阅读到它的结尾时出现EOF,它将会给你错误。