태그 보관물: test

test

유닉스의 테스트 명령이 출력을 인쇄하지 않습니다 입력하면 test 4 -lt 6 출력이 없습니다. 왜 안돼?

터미널에 이것을 입력하면

test 4 -lt 6

출력이 없습니다. 왜 안돼? 0 또는 1이 필요합니다



답변

종료 코드에서 0 또는 1을 얻습니다.

bash-4.2$ test 4 -lt 6

bash-4.2$ echo $?
0

bash-4.2$ test 4 -gt 6

bash-4.2$ echo $?
1

업데이트 : 나중에 사용하기 위해 종료 코드를 저장하려면 변수에 할당하십시오.

bash-4.2$ test 4 -lt 6

bash-4.2$ first=$?

bash-4.2$ test 4 -gt 6

bash-4.2$ second=$?

bash-4.2$ echo "first test gave $first and the second $second"
first test gave 0 and the second 1

답변

다른 방법은

test 4 -lt 6 && echo 1 || echo 0

그러나이 경우주의하십시오. 만약 test반환 성공과 echo 1실패 echo 0실행됩니다.


답변

종료 코드 대신 표준 출력에 대한 비교 결과를 원하는 경우 다음 expr(1)명령을 사용할 수 있습니다 .

$ expr 4 '<=' 6
1

두 가지주의 사항 :

  1. 쉘 메타 문자와 충돌하는 많은 연산자를 인용해야 할 것입니다.
  2. 출력값은에 대한 리턴 코드와 반대입니다 test. testtrue (종료 코드의 표준)에 대해서는 0을 반환하지만 exprtrue에 대해서는 1을 인쇄합니다.