[unix] && 및 || 뒤에 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 호환입니까?)



답변

명백히 종결되지 않은 명령이있는 일부 상황에서는 줄 바꿈이 무시됩니다. 이러한 상황은 제어 조작 후 등 ( &&, ||, |, &, ;, ;;,는 아니지만 !).

나는 이것을 bash 매뉴얼에 문서화하지 않았다.

POSIX에서는 문법 규칙을 통해 지정됩니다 . 규칙의 위치에 관계없이 linebreak줄 바꿈이 0 개 이상있을 수 있습니다.


답변