AND에서 조건 둘이 참이어야 실행한다는 부분이 이해가 되지 않아 질문 드립니다.
안녕하세요. 좋은 강의 잘 듣고 있습니다. 😃
질문 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나 둘다 조건문인데 명령을 실행시키기 위한 장치처럼 작동하는 건가요?
Answer 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의 특성을 명령을 실행하기 위한 장치로 사용하는 것이 맞습니다.
강의 듣는 타겟층
0
72
2
기초편 교안 실행 안될 경우 참고사항.
2
385
1
강의 자료 제공 가능할까요?
0
463
1
codeonweb 관련 질문
0
516
2
Ubuntu / Network Interface SysConfig 파일 찾는 법
0
1319
1
Ubuntu / Bareword "test0" not allowed while "strict subs" / 해결법
0
1067
1
실습환경에 대한 문의 드립니다.
0
564
2
강의를 초반을 듣는중에 궁금한점이 있어 문의드립니다.
0
370
1
bash와 zsh은 어느 정도의 차이가 나나요?
0
2987
1
웹 리눅스 환경으로만 진행해야 하나요?
0
406
1
방화벽에 대해서 질문드립니다.
0
337
1
mount에 대해서 질문드립니다.
0
380
1
쉘 스크립트 안에서
0
384
1
쉘 스크립트 작성해보았습니다
2
776
1
별도의 강의 자료는 없는것인지 문의 드립니다.
0
301
1
분명 파일이 있는데 계속 -bash: cd: /root/SHELL: No such file or directory 라고 뜹니다
0
2897
1
저는 이렇게 작성했습니다. 멘트 부탁드려요
0
272
1
강의듣다보니..
0
278
1
문자열 비교 관련 질문드립니다.
0
616
3
/dev/null 에 관해서 질문이요
0
787
1
menu.sh 내 menu 함수 작성 시 중괄호
0
281
1
sed 명령어 옵션 질문
0
509
2
function menu 함수 GUI로 작성 시 에러?상태
0
311
1
한글입력
0
225
1

