if문에 2개 이상의 조건을 넣을 수 있나요?
if [ "$name" != "$blank" && "$age" == "$blank" ]; then
가능합니까? 그렇지 않다면 어떻게 해야 합니까?
답변1
(POSIX 표준) 구문을 사용하면 [ expression ]
다음을 사용할 수 있습니다.
if [ "$name" != "$blank" ] && [ "$age" = "$blank" ]; then
echo true
fi
그러나 [[ expression ]]
구문에서는 다음 두 가지 조건을 사용할 수 있습니다.
if [[ $name != "$blank" && $age == "$blank" ]]; then
echo true!
fi
[[
over의 두 가지 장점 [
:
- and 에는 토큰화나 전역 확장이 없으므로 많은 인수를 따옴표로 묶을 필요가 없습니다(
[[
따옴표가 없는 경우 패턴으로 해석되는 and 의 오른쪽은 제외).==
!=
[[
사용하기 쉽고 오류가 발생할 가능성이 적습니다.
단점 [[
: ksh, bash 및 zsh에서만 지원되며 일반 Bourne/POSIX sh에서는 지원되지 않습니다.
[[
참조 및 [
비교를 위한 나의 좋은 페이지배쉬 FAQ
답변2
언급되지 않은 또 다른 가능성이 있습니다@SepahradSalour-a
연산자를 사용하고 있습니다 :
if [ "$name" != "$blank" -a "$age" = "$blank" ]; then
그런데, 모든 변수를 올바르게 인용하세요.각기.