2016-09-21 3 views

답변

2

-a-o이 제기 할 수있는 문제에 대한 설명은 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16을 참조하십시오. 일반적으로 표현식이 구문 분석되는 방식은 매개 변수가 확장되는 방식에 따라 달라집니다. 다음과 같은 시험을 고려 :

test "$1" -a "$2" 

$1의 값에 따라,이 중 하나를

# Unspecified behavior 
# With three arguments, the first "!", the second argument 
# must be a unary primary like -n or -f. 
test "!" -a "$2" 

또는

test "foo" -a "$2" # Test that "foo" and "$2" are non-zero length strings 

$1 경우 !, test가 부정으로 그 치료 것입니다 수 연산자는 길이를 검사해야하는 문자열이 아닙니다.

또한 test은 4 개 이하의 인수에 대해서만 잘 정의되어 있습니다. -a-o은 일반적으로 5 개 이상의 인수가 test으로 전달되도록합니다.