为什么此脚本在最后一行给出“意外的文件结尾”语法错误?
{ [ $# -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 ;}