조건문에서 -x는 무엇을 의미합니까?


20

여기서 -x의미하는 것은 :

if [ -x /etc/rc.local ] then

이 매뉴얼 페이지를 if어떻게 찾을 수 있습니까?


4
tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html 이 페이지는 bash의 기본 사항을 설명하는 페이지입니다.
Christophe De Troyer

2
파일이 존재하고 실행 가능한 경우 true로 평가됩니다.
jobin

시도 했습니까 help if?
Avinash Raj

답변:


26

로부터 man bash페이지 (특히 조건식 섹션) :

   -a file
          True if file exists.
   -b file
          True if file exists and is a block special file.
   -c file
          True if file exists and is a character special file.
   -d file
          True if file exists and is a directory.
   -e file
          True if file exists.
   -f file
          True if file exists and is a regular file.
   -g file
          True if file exists and is set-group-id.
   -h file
          True if file exists and is a symbolic link.
   -k file
          True if file exists and its ``sticky'' bit is set.
   -p file
          True if file exists and is a named pipe (FIFO).
   -r file
          True if file exists and is readable.
   -s file
          True if file exists and has a size greater than zero.
   -t fd  True if file descriptor fd is open and refers to a terminal.
   -u file
          True if file exists and its set-user-id bit is set.
   -w file
          True if file exists and is writable.
   -x file
          True if file exists and is executable.

   [...]

3
디렉토리에 대한 실행 파일은 통과 할 수 있음을 의미합니다.
rich remer

2
@StevenPenny 질문의 두 번째 부분은 "이 매뉴얼 페이지를 어떻게 찾을 수 있습니까?"였습니다.
Sparhawk

1
@drewbenn testbash를 호출하면 test바이너리 를 호출하지 않습니다 . 대신 다른 곳 test에서 문서가있는 bash의 내장을 호출 help test합니다. man test그런 이유로 어떤 경우에는 오해의 소지가 있습니다.
Chris Down

11

if자체는 쉘 키워드이므로로 정보를 찾을 수 있습니다 help if. if다음 명령은 true (0) 또는 false (0 아님)를 반환하는지 여부에 따라 분기됩니다. 당신이 정말하지만 원하는 것은 man [man test[의 별칭입니다 test. 해당 명령문은 실제로 실행 중이며 test -x /etc/rc.local, 해당 파일이 존재하고 실행 가능한지 (또는 검색 권한이 있는지) 테스트합니다.


1
man [작동합니다.
Sparhawk

1
파일이 존재하는지 확인하는 것뿐만 아니라 파일이 실행 가능한지 여부를 테스트합니다.
Tom Fenech

@TomFenech, 아, 맞아 ...
psusi

@psusi if는 쉘 내장이 아니며 쉘 키워드입니다.이 명령 type if을 실행 하여 확인하십시오.
Avinash Raj

3

보낸 사람 info test:

`-x FILE'
    True if FILE exists and execute permission is granted (or search permission, if it is a directory).

디렉토리에 CD를 넣으려면 (즉, 일부 디렉토리를 현재 작업 디렉토리로 만들려면) 디렉토리에서 실행 권한이 필요합니다.

디렉토리 내 파일의 "inode"정보에 액세스하려면 디렉토리에서 실행이 필요합니다. 디렉토리 내에서 파일의 inode를 읽으려면 디렉토리를 검색해야합니다. 이러한 이유로 디렉토리에 대한 실행 권한을 종종 검색 권한이라고합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.