cygwin bash:意外的EOF

时间:2018-06-11 13:36:51

标签: bash cygwin

以下bash代码有什么问题?

#!/bin/bash
if [ -z "$1" ]; then
  echo "Usage: $0 {file}"
fi

生成“意外EOF”错误。 Windows 10中的Cygwin 2.10.0(0.325 / 5/3)。

1 个答案:

答案 0 :(得分:1)

您的文件中有DOS行结尾,这意味着DECLARE @A DATETIME = '1945-01-01 00:00:00.000' select format(@A ,'yyyyMMdd') 解析器会看到

bash

它不是一个完整的if [ -z "$1" ]; then\r echo "Usage: $0 {file}"\r fi\r 语句,而是看到一个语句的开头,其条件包括(到目前为止)命令if[ -z "$1" ]then\r,和echo "Usage: $0 {file}"\r。解析器仍然在寻找fi\r关键字来终止条件列表,但却找到了文件的结尾。

使用then作为行结尾将您的脚本另存为POSIX文本文件,而不是\n