이 스크립트의 마지막 줄에 "예기치 않은 파일 끝" 구문 오류가 발생하는 이유는 무엇입니까?
{ [ $# -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 ;}