Bash 스크립트를 작성할 때 &&에 해당하는 것은 무엇입니까?

Bash 스크립트를 작성할 때 &&에 해당하는 것은 무엇입니까?

중복된 질문이라면 미리 사과드립니다. 여기에 질문하기 전에 검색/확인하려고 노력했습니다.

나는 다음과 같은 퀴프를 쓰고 싶습니다.

foocommand && foocommand2 && foocommand3

아이디어는 이전 명령이 "성공"한 경우에만 후속 명령이 실행되기를 원한다는 것입니다.

저는 다소 긴 스크립트를 작성하고 있는데 이 한 줄의 코드는 다른 사람들에게는 혼란스러운 코드 묶음처럼 보일 것이기 때문에 실행 가능하지 않습니다.

스크립트에서 명령 간격을 두고 명령 사이에 주석을 쓰고 싶습니다. 어떻게 하면 &&와 동등한 기능을 가질 수 있나요?

답변1

shebang 라인을 다음으로 변경할 수 있습니다.

#!/bin/bash -e

오류가 발생하면 스크립트가 중지됩니다.

답변2

다음을 수행할 수 있습니다.

#!/bin/sh
ls -lh &&
    # This is a comment
    echo 'Wicked, it works!'

귀하의 질문을 올바르게 이해했기를 바랍니다.

답변3

아이디어 가 마음에 들지 않으면 set -e논리를 뒤집을 수도 있습니다.

foocommand || exit 1
foocommand2 || exit 2
foocommand3 || exit 3

더 유용하게는 exit내용을 유용한 오류 메시지로 바꾸고 종료하는 것입니다. 물론 return.exit

답변4

중첩된 문을 사용하는 것을 고려해 볼 수 있습니다 if. 다른 옵션은 그룹화에 곱슬을 사용하는 것입니다.{ true && echo hi; } || echo huh

업데이트 1:

줄 바꿈/주석이 없는 예는 다음과 같습니다.

{ { false && echo "inner true"; } && { echo "inner true" && true; } || { echo "inner false" && false; } || echo "outter false"; }

관련 정보