나는 이 구성을 스크립트에서 자주 보고 직접 사용하지만, 문서에서 찾을 수 없다는 것이 나를 괴롭히는 것입니다.
예:
[ -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에서는 통과되었습니다.문법 규칙. 규칙에 있는 곳에는 linebreak
0개 이상의 개행 문자가 있을 수 있습니다 .