&&(and) 앞에 &(bg)를 사용하면 bash 스크립트에서 오류가 발생하는 이유

&&(and) 앞에 &(bg)를 사용하면 bash 스크립트에서 오류가 발생하는 이유

[[ -n $program ]] && echo "$program" && setsid $program "$arg" & && exit 0
"예기치 않은 토큰 '&&' 근처에 구문 오류가 있습니다."

[[ -n $program ]] && echo "$program" && { setsid $program "$arg" & } && exit 0
잘 작동

여기서 괄호를 사용하는 것의 차이점을 이해하도록 도와줄 수 있는 사람이 있습니까?

답변1

Bash 매뉴얼 페이지를 인용하면 다음과 같습니다.

목록은 다음으로 구성된 하나 이상의 파이프의 시퀀스입니다.하나연산자 ;, &, &&또는 , 및 선택적으로 , 또는 ||중 하나로 종료됩니다 .;&<newline>

따라서 파서가 이를 & &&구문 오류로 처리할 것이라고 가정합니다.

관련 정보