2012-06-15 2 views
0

I 다음 줄이있는 #/빈/SH 스크립트가 있습니다!쉘 스크립트 -x 플래그 의미

if [ ! -x "$TEST_SLAPD" ] 

$TEST_SLAPD가 .BAT 파일의 전체 경로입니다.

-x 플래그가 의미하는 내용이 if 인 지 궁금합니다.

답변

5

if 다음 명령의 결과를 확인하기 만하면됩니다. [은 (항상 최소한 항상) 운영자가 아니며 'test'라는 작은 유틸리티입니다. 해당 설명서에서

:

-x file 
          True if file exists and is exe- 
          cutable. True indicates only 
          that the execute flag is on. If 
          file is a directory, true indi- 
          cates that file can be searched. 

(그리고 예, ! 분명히 부정이다) 유사한 evualation 플래그를 들어

이 문서는 여기에 있습니다 : http://illumos.org/man/1/test

2

조건부 ! -x 파일을 의미하거나 디렉토리에 현재 사용자에 대해 설정된 실행 가능 비트가 없습니다. 도움말은 너무 디렉토리에 적용한다는 사실에 대해 좀 덜 명확하지만은 말한다 :

$ help test | fgrep -- '-x' 
     -x FILE  True if the file is executable by you. 
+0

즉 false를 반환하고 파일에 확실히 가능성이 쉘 스크립트가 시도와 권한 문제를이 경우 .bat 파일을 실행 하시겠습니까? – Baxter

+0

@Baxter 예. 그래서 -r과 -x가 종종 -f를 사용하여 파일의 존재를 테스트하는 것보다 더 유용합니다. –