비교를 위해 스크립트 및 테스트 조건 쉘

1, 일반적으로 사용되는 문법 시험 조건

테스트 테스트 표현식 사용 테스트는 조건 테스트 표현식, 명령 및 테스트 표현식 테스트 사이에 적어도 하나 개의 공간을 명령
[시험 식] [] 괄호 발현을위한 시험 조건, [] 및 경계 괄호 테스트 발현 사이에 적어도 하나 개의 공간
[시험 식] 조건이 식으로 시험한다 []는 대괄호 [[]] 이중 괄호 사이에 적어도 하나 개의 공간 표현을 테스트
((시험 식)) (())이 테스트 발현 조건 괄호 ()) 비스 공간이 필요하지 괄호 단부 비스으로 흔히 비교 정수에 사용

 설명 :

  • 더블 괄호 [[]] 여러 다른 장소 문법의 다른 와일드 카드 일치 될 수있다
  • &&, ||, <,> 오퍼레이터의 대괄호 []과 같이 사용될 수 있지만 []를, 일반적인 사용 -a, -O, -lt, -gt 대신에 []

예를 들면 :

1 개 테스트 -f /tmp/test.txt && 에코  1 || 에코  0 
2 [-f /tmp/test.txt] && 에코  1 || 에코  0 
3 [-f /tmp/test.txt] && 에코  1 || 에코  0 
(4) (( 3 > 2 )) && 에코  1 || 0 에코

2, 테스트 표현식 사용

2.1, 파일 테스트 표현식

-d 파일 파일이 존재하고 디렉토리는 사실이다
-f 파일 파일이 존재하고 진정한 일반 파일입니다
-e 파일 존재 사실 파일, 디렉토리 또는 파일을 계산하지 않습니다
-s 파일 파일이 존재하고 파일 크기가 0 사실이 아니다
-r 파일 사실이 존재하고 읽기 및 스크립트 파일의 실행은 또한 사용자 권한에 관련이
-w 파일 파일이 존재하고 관련도 스크립트를 실행하는 사용자의 권한으로, 진정한 쓰기 가능
-x 파일 트루 파일이 존재하고 실행하고, 사용자 권한은 관련 스크립트를 실행
-L 파일 파일이 존재하고 진정한 파일 링크
F1 F2 -nt 파일 수정 시간보다 진정한 새로운 파일의 F1, F2는 파일에 기초하여 계산된다
F1 F2 -ot  파일 F2보다 오래된 파일 수정 시간에 따른 실제 파일 F1 구했다

 

2.2 문자열 테스트 표현식

-n "문자열" 문자열의 길이는 사실이 0 인 경우
-z "문자열" 만약 0 사실의 문자열의 길이
"串 1"= "串 2" 문자열은 1 문자열 2 참 동일한 경우, 그것은 "=="대신 "="으로 사용될 수있다
"串 1"! = "串 2" 문자열이 동일하지 않은 일에 충실 2 문자열을 사용할 수있는 경우! "=="대신 "! ="

참고 :

  • 당신이 문자열 뒤에 인용 부호를 추가 할보다 확실히 더 문자열 비교하십시오. 같은 [-n "$ 문자열"]
  • =와! = 문자열이 동일한 두 여부를 확인하는 데 사용할 수 있습니다

 

2.3 정수 연산자

[] 및 시험 에서 [] (()) 및 설명
-eq == 또는 = 동등 철자 같다
-nq ! = 동일하지 않은 경우, 철자가 동일하지
-gt > 보다 큰, 맞춤법보다 큰
-provide > = 보다 크거나 같음, 더욱 동일한 철자
-lt < 이하, 맞춤법 미만
-THE <= 이하, 이하 동일 철자

 

 2.4 논리 연산자

[] 및 시험 에서 [] (()) 및 설명
-에이 && 양쪽에 해당로하고, 결과는 true입니다
-o || 또는, 또는, 양쪽 끝은 결과가 true 사실이다
! ! 아니, 비는 양단은, 결과는 true입니다

 

2.5 테스트 발현의 차이 요약

테스트 표현 기호 테스트 [] [[]] (())
경계 공간이 필요 여부 필요가있다 필요가있다 필요가있다 필요가 없습니다
논리 연산자 ! - A, -o ! - A, -o !, &&, || !, &&, ||
정수 비교 연산자 -eq, -ne, -lt, -gt, -ge, -THE -eq, -ne, -lt, -gt, -ge, -THE

-eq, -ne, -lt, -gt, -ge, -le 또는

=,! =, <,>,> =, <=

=,! =, <,>,> =, <=
문자열 비교 연산자 =, ==,! = =, ==,! = =, ==,! = =, ==,! =
와일드 카드를 지원 지원하지 않습니다 지원하지 않습니다 지원 지원하지 않습니다

추천

출처www.cnblogs.com/hovin/p/11244586.html