2
#!/bin/bash
if [ "$1" = "boot" ]
then
     if [ -f /var/log/boot.log ]
     then
         echo /var/log/boot.log
     elif [ -f /var/log/boot ]
     then
         echo /var/log/boot
     fi
fi

这显示了输出:

: command not foundline 8: GetLogfileName.sh: line 15: syntax error
near unexpected token `elif' 'etLogfileName.sh: line 15: `        
elif [ -f /var/log/boot ]

这里出了什么问题?

4

2 回答 2

6

乱码错误消息表明您的文件在换行符之前有回车符。您是否在 Windows 上编辑过脚本?要么使用文本编辑器保存文件而不使用回车符,要么通过dos2unix(或者可能d2u)运行脚本

于 2013-09-11T13:08:33.437 回答
1

如果你使用 vi 编辑器,设置 ":set ff=unix",保存文件,然后重新执行。

此文件格式 (ff) 设置命令告诉 vi 在保存文件时使用仅 LF 行结尾。

于 2014-03-07T17:00:58.923 回答