확인해보니 man test
시놉시스에 와 의 가능성이 있는 것으로 확인됐습니다 test
.test EXPRESSION
test
다음은 무엇을 [ EXPRESSION ], [ ] and [OPTION
의미하나요?
괄호는 왜 비어 있고, [OPTION
괄호가 없는 이유는 무엇입니까? 누군가 나에게 이것을 설명해 줄 수 있습니까?
NAME
test - check file types and compare values
SYNOPSIS
test EXPRESSION
test
[ EXPRESSION ]
[ ]
[ OPTION
답변1
[
예다른 이름을 위한 test
. 세 줄 모두 test
몇 가지 옵션이 포함된 명령줄입니다.
첫 번째 줄은 표준 테스트입니다. [ 5 -gt 4 ]
와 동일합니다 test 5 -gt 4
.
두 번째에서는 표현식이 생략되었습니다. 이는 false가 종료됨을 의미합니다(0 arguments: Exit false (1)
).
세 번째 경우에는 GNU coreutils를 사용하고 있는 것 같습니다. GNU의 test
도움말 텍스트에는 다음 설명이 포함되어 있습니다.
NOTE: [ honors the --help and --version options, but test does not. test treats each of those as it treats any other nonempty STRING.
이것은비 POSIX 확장test
; 이러한 매개변수를 다른 매개변수와 마찬가지로 문자열로 처리하려는 의도인 것 같습니다 . [
닫는 괄호의 존재로 옵션 케이스와 문자열 케이스를 구별하는 기능 ]
.
쉘이 자체적으로 를 제공할 수 있으므로 이 버전을 사용해야 [
합니다 ./bin/\[
답변2
[
test
일부 쉘의 쉘 내장 명령과 동일합니다.
더 자세히 살펴보면 man test
효과적으로 테스트할 수 있는 내용이 설명되어 있습니다.EXPRESSION
생략된 EXPRESSION의 기본값은 false입니다. 그렇지 않으면 EXPRESSION이 true 또는 false이고 종료 상태가 설정됩니다. 다음 중 하나입니다....
매뉴얼 페이지에서는 알 수 없지만 이전/일부 다른 쉘에서는 및 둘 다 실제 명령으로 [
사용 가능합니다 test
. 즉, 표시되는 공간은 다음과 같습니다 [ EXPRESSION ]
.필수적인EXPRESSION
으로 받아들여지기 위해토론을 위한 [
/ test
. 따라서 이를 내장으로 제공하는 셸의 경우에도 호환성을 위해 이 형식을 유지합니다.
설명된 대로@dr01이 답변을 입력했을 때 닫는 대괄호는 선택 사항이었습니다.
답변3
[ OPTION
실제로 괄호가 부족한 것은 아닙니다.
실제로 놀랍게도 와 동등한 [
명령 (위치)이 있습니다 . 따라서 (적어도 이론상으로는) 왼쪽 괄호만 사용하는 것이 허용되고 오른쪽 괄호는 구문 설탕으로 사용됩니다. 하지만,/usr/bin/[
test
최신 쉘 버전에는 필요합니다..