为什么此脚本给出“意外的文件结尾”语法错误?

为什么此脚本给出“意外的文件结尾”语法错误?

为什么此脚本在最后一行给出“意外的文件结尾”语法错误?

{ [ $# -ne 2 ] && [ $# -ne 3 ] } && { echo "Uso: $0 [opciones] [nlineasresultado] [archivos a analizar]" && echo "NEED 2 OR 3 PARAMETERS" && exit 1 }
echo sucessfull
exit 0

答案1

请参阅手册页,其中显示使用大括号 ( , )bash时的语法为:{}

{ list; }

这意味着您缺少几个分号:

{ [ $# -ne 2 ] && [ $# -ne 3 ]; } && { echo "Uso: $0 [opciones] [nlineasresultado] [archivos a analizar]" && echo "NEED 2 OR 3 PARAMETERS" && exit 1; }

请注意,您还可以使用换行符来实现相同的目的。也就是说,这是一个错误:

{ echo hello }

但这有效:

{ echo hello; }

就像这样:

{
echo hello
}

答案2

bash命令分组 ,在右大括号 , 之前{}需要一个,因为您没有放置它,因此会出现错误。;}

做:

{ [ $# -ne 2 ] && [ $# -ne 3 ] ;} && { echo "Uso: $0 [opciones] [nlineasresultado] \
          [archivos a analizar]" && echo "NEED 2 OR 3 PARAMETERS" && exit 1 ;}

相关内容