
다음과 같은 간단한 표현만 할 수 있습니다.1=1 and 0=1
test 1 = 1 -a 0 = 1
그런데 와 같은 복잡한 표현은 어떻게 해야 할까요 1=1 and (0=1 or 1=1)
?
답변1
여러 테스트 호출을 사용하십시오.
test 1 = 1 && test 0 = 1 -o 1 = 1
또는 [[:
[[ 1 = 1 && (0 = 1 || 1 = 1) ]]
답변2
괄호는 이스케이프 처리해야 하고 용어는 공백으로 구분해야 한다는 점을 기억하고 주의해서 test
or [
...를 사용할 수 있습니다 .]
if [ \( a = a \) -a \( a = b -o b = b \) ]
then echo Yes
else echo No
fi
그것은 나에게 '예'를 반영합니다. 하지만 일반적으로 Bash 및 Korn 쉘 [[
... ]]
연산자를 대신 사용하는 것이 더 쉽습니다. 탈출을 많이 할 필요는 없습니다.
답변3
질문에 대한 답변은 이미 나와 있지만 고려할 수 있는 몇 가지 스타일 팁이 있습니다(또는 거부할 수도 있습니다 :-)).
당신이 그것을 작성하고 혼란스럽다면 다음과 같이 할 수도 있습니다.
- 필요하지 않더라도 extra()를 사용하면 더 명확해질 수 있습니다.
- 또한 많은 및 문 대신 중첩 루프를 사용할 수도 있습니다.
답변4
Florian은 위에서 대부분 정확하지만 bash에는 변수를 비교할 때 조금 더 좋은 산술 확장도 있다는 점을 명심하십시오.
보다여기더 많은 정보를 위해서.