&& 및 || 이후의 bash 라인 연속이 문서화되어 있습니까?

&& 및 || 이후의 bash 라인 연속이 문서화되어 있습니까?

나는 이 구성을 스크립트에서 자주 보고 직접 사용하지만, 문서에서 찾을 수 없다는 것이 나를 괴롭히는 것입니다.

예:

[ -f file1 ] &&
[ -f file2 ] &&
echo "Both files exist." ||
echo "One or the other file doesn't exist."

아래에 설명된 대로 개행 문자 앞에 백슬래시를 사용하여 이 작업을 수행할 수도 있습니다 man bash.

If a \<newline> pair appears,  and  the  backslash  is  not
itself  quoted,  the \<newline> is treated as a line continuation (that
is, it is removed from the input stream and effectively ignored).

예:

[ -f file1 ] && \
[ -f file2 ] && \
echo "Both files exist." || \
echo "One or the other file doesn't exist."

…하지만 그럴 필요는 없을 것 같습니다. 위의 첫 번째 버전은 백슬래시 없이도 작동합니다.

이것을 어디서 찾을 수 있나요 man bash? (또한 이것이 bash구체적이거나 POSIX와 호환됩니까?)

답변1

종료되지 않은 명령이 명확하게 존재하는 일부 상황에서는 개행 문자가 무시됩니다. 이러한 컨텍스트는 제어 연산자( &&, ||, |, &, ;, ;;그러나 포함되지 않음 !) 뒤에 포함됩니다.

bash 매뉴얼에서는 이것을 볼 수 없습니다.

POSIX에서는 통과되었습니다.문법 규칙. 규칙에 있는 곳에는 linebreak0개 이상의 개행 문자가 있을 수 있습니다 .

관련 정보