쉘 구문: 줄 바꿈에 \를 올바르게 사용하는 방법은 무엇입니까? [복사]

쉘 구문: 줄 바꿈에 \를 올바르게 사용하는 방법은 무엇입니까? [복사]

나는 목록의 줄을 감싸는 적절한 방법이 다음과 같을 것이라고 생각하곤 했습니다.

command1 && \
command2

이는 사실이 아니며 그럴 필요도 없다는 것이 밝혀졌습니다.\

$ [  $(id -u) -eq 1000  ] &&                                                   
> echo yes
yes

파이프도 |같은 방식으로 작동합니다.

Bash 매뉴얼 페이지의 파이프 및 목록 섹션에는 이에 대해 아무 것도 나와 있지 않습니다. 그래서 제 질문은: \긴 줄을 끊는 올바른 사용법은 무엇입니까?

답변1

계속하지 않고 명령문이 올바른 경우 필수입니다 \. 따라서 명령을 종료할 수 없으므로 다음은 백슬래시 없이 실행됩니다 &&.

echo 1 &&
echo 2

여기에는 백슬래시가 필요합니다.

echo 1 2 3 \
4

또는

echo 1 \
&& echo 2

그렇지 않으면 bash는 다음 줄을 기다리지 않고 첫 번째 줄을 처리한 후 즉시 명령을 실행합니다.

답변2

제가 대규모 IT 회사에서 근무하는 동안 접한 스크립팅 스타일 가이드 중 하나는 쉘 스크립트에서 한 줄에 80자 이하를 사용하고 개행 뒤에 들여쓰기를 요구했습니다. 또한 파이프나 && 또는 || 앞에도 끊어야 합니다. 좋다:

command1 \
  && command2 \
  || command3 \
  | command4

목표는 명확한 가독성입니다.

관련 정보