• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

AND에서 조건 둘이 참이어야 실행한다는 부분이 이해가 되지 않아 질문 드립니다.

24.01.22 09:51 작성 조회수 127

0

안녕하세요. 좋은 강의 잘 듣고 있습니다. 😃

질문 1

AND에서 조건에서 왼쪽이 참이면 오른쪽 명령이 실행된다고 했습니다. 그런데 다음 강좌에서 AND, OR를 정리 할때 조건 둘이 참이어야 명령이 실행된다고 하셔서 조금 혼란이 왔습니다.

test 1==1 && cat test.txt

위 코드에서 1==1 외에 어떤 조건이 또 참이어야 cat test.txt가 실행되는 건가요?

cat test.txt 또한 조건이라면 두 조건이 만족 될 때 실행하고자하는 명령을 추가로 입력할 수 있는걸까요?

질문 2

OR의 경우 왼쪽이 거짓이면 오른쪽 명령이 실행된다고 하셨는데요.

그럼 단순히 OR는 NOT AND의 개념으로 이해를 하면 되는걸까요?

사실 제가 알고 있는 OR는 조건 중 하나가 참이면 명령 실행으로 알고 있어서요.

bash script에서는 AND나 OR나 둘다 조건문인데 명령을 실행시키기 위한 장치처럼 작동하는 건가요?

 

답변 1

답변을 작성해보세요.

2

안녕하세요.

AND와 OR을 사용한 if문 응용이 쉬워보이지만 생각보다 헷갈리기 쉬운 부분이기도 합니다.

질문 1과 2가 같은 맥락으로 답변이 가능할 것 같습니다.

test 1==1 && cat test.txt

이 코드에서 왼쪽의 test 1==1이 참일 때 오른쪽 cat test.txt를 실행하는 이유를 말씀드리면, AND(&&)가 참이 되려면 &&의 왼쪽과 오른쪽이 모두 참이어야 참의 결과가 나오기 때문입니다.

조금 더 쉽게 설명하면 A AND(&&) B 가 참이 되려면 A와 B가 모두 참이 돼야합니다.

여기에서 A가 test 1=1 이고, B가 cat test.txt 인 것이지요.

그러므로 A가 참이면 AND 전체의 명제가 참인 지 거짓인 지 확인을 하기 위해 B를 실행하는 것입니다.

이 때 B가 거짓이면 이 AND연산은 거짓인 것이고 B가 참이면 AND연산은 참의 결과값이 됩니다.

하지만 우리는 실제 AND의 연산 결과는 아무상관이 없지요.

왜냐하면 원하는 결과는 B를 실행하는 순간 얻어낼 수 있으니까요.

이렇게 B가 AND연산의 결과를 결정하게 되므로 B를 실행하도록 만드는 일종의 꼼수(?)라고 볼 수 있습니다.

 

OR도 마찬가지 입니다.

A OR B 가 참이 되려면 A와 B 중의 하나가 참이어야 합니다.

A가 참이라면 OR연산의 결과는 참으로 정해지므로 B가 참인 지 거짓인 지 확인하지 않아도 됩니다.

A가 거짓이라면 OR연산의 결과는 B가 결정하게 되므로 B를 실행하는 것이지요.

 

질문2에서 말씀하신대로 AND나 OR의 특성을 명령을 실행하기 위한 장치로 사용하는 것이 맞습니다.

빠른 답변 정말 감사합니다 🙂 이제 이해가 되었어요.