작성
·
25K
2
3분 40초 쯤에 설명하실 때, true = 0, false = 1 이라고 말씀 하셨는데,
C++, java 등의 컴퓨터 언어에선 true=1, false=0 으로 사용하고 있잖아요.
쉘 스크립트 에서만 true = 0 인 건가요?
답변 1
2
윤동희님 안녕하세요:) 질문에 답변드립니다.
말씀하신 것처럼 프로그래밍 언어에서는 1은 참이고, 0은 거짓으로 처리됩니다
반면, 리눅스 쉘에서는 명령의 종료 상태 값은 0을 참으로, 1을 거짓으로 처리하고 있습니다
쉘에서의 함수 종료 처리 또한 마찬가지죠. 정상(exit 0), 오류(exit 1)
아래 예문들은 그 특징을 잘 보여줍니다
admin☠️ true;echo $?
0
admin☠️ false;echo $?
1
admin☠️ if true; then echo true; else echo false; fi
true
admin☠️ if false; then echo true; else echo false; fi
false
admin☠️ if (true); then echo true; else echo false; fi
true
admin☠️ if (false); then echo true; else echo false; fi
false
admin☠️ if $(true); then echo true; else echo false; fi
true
admin☠️ if $(false); then echo true; else echo false; fi
false
그러나, 산술 확장의 경우는 예외적으로 프로그래밍 언어에서의 참(1)과 거짓(0) 논리 규칙을 따릅니다
admin☠️ if ((0)); then echo true; else echo false; fi
false
admin☠️ if ((1)); then echo true; else echo false; fi
true
여기까지 입니다. 좋은 질문 주셨네요. ㅎㅎ
압도적 감사