以下bash代码有什么问题?
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 {file}"
fi
生成“意外EOF”错误。 Windows 10中的Cygwin 2.10.0(0.325 / 5/3)。
答案 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
。