我正在编写一个bash脚本以获取库存信息,并且试图收集有关Red Hat的两个单独版本的数据。它们为ifconfig提供两种不同类型的输出,因此我只是想在已运行的函数中添加一个'if'语句。我不断收到错误消息syntax error: unexpected end of file
。我以为我没有在某处关闭东西,但我似乎看不到它,尽管我可能已经看了太久了。任何帮助都会很棒。
这是脚本
#!/bin/sh
OS_VERSION=`cat /etc/redhat-release |awk '{print $0}'`
pat=".*Santiago.*"
num=1
if [[ "$OS_VERSION" =~ $pat ]]; then
for i in `/sbin/ifconfig -a |grep -i -B 3 "UP" |grep -i "HWaddr"|awk '{print $1}'`
do
{
MacAddress=`/sbin/ifconfig $i |grep -i -B 3 "UP" |grep -i "HWaddr"| awk '{print $NF}'`
Ip_Address=`/sbin/ifconfig $i|grep -i "inet addr"|awk '{print $2}'|awk -F: '{print $2}'`
echo -n "ethName$num=$i | ethMac$num=\"$MacAddress\" | ethIp$num=\"$Ip_Address\" | "
num=$(expr $num+1|bc)
}
else
echo "Not Santiago, use other script"
done;
echo "";
exit
答案 0 :(得分:1)
我看到一个if
...
if [[ "$OS_VERSION" =~ $pat ]]; then
...但没有fi
。 (这是您收到的错误消息背后的实际问题-文件终止-意外-在if
关闭之前。)
我看到一个for
-do
- else
...之后是done
...?!?
应该是:
if
-then
-[else
]-fi
for
-do
-done
。您把这些混在一起了。适当的缩进将使这一点显而易见。