스크립트 에서이 구문을 많이 보았고 직접 사용했지만 문서에서 찾을 수없는 것으로 귀찮게합니다.
예:
[ -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 개 이상있을 수 있습니다.