2017-05-15 1 views
0

test을 사용하여 sytax를 괄호 ([])로 확인하려고합니다.0이 아닌 플래그와 함께 테스트를 사용하는 방법 -n

테스트의 맨 문자열의 길이가 0이 아닌 경우 -n 확인하는 데 사용할 수있는 것을 말한다 : 문자열의 길이가 0 인 경우 반대 -z에서

-n STRING 
       the length of STRING is nonzero 

는 TI의 수표를 사용할 수 있습니다 : test 작품은 내가 제로의 길이와 하나의 길이의 두 번째 변수 bar이있는 빈 변수 foo으로 예를 상자에 포장하는 방법

-z STRING 
       the length of STRING is zero 

는 이해하기 :

-n의 처음 두 테스트는 모두 0으로 표시됩니다. 나는 첫 번째 테스트에서는 0, 두 번째 테스트에서는 0이 될 것이라고 제안했다. 두 번째 테스트는 제안 된 결과를 보여줍니다.

[ -n "$foo" ] ; echo $? 

는 $ foo는 빈 문자열이 때문에,

[ -n $foo ] # without quotes 

이된다 :

[ -n ] 

수동 테스트 (1) 말한다 :

+3

변수를 인용하거나'[[]]'를 사용하십시오. '-n $ foo'는'-n'으로 확장됩니다. 인자가 없으므로'[] '에 의해'-n'으로 검사 할 문자열로 인식되므로'[-n "-n"]' – 123

답변

1

는 다음 시도

STRING equivalent to -n STRING 

그래서 [-n "]은 [-n" "]이 아닌 ["-n "]처럼 취급됩니다.

관련 문제