Bash_Shell if 조건 판단

       초보 자 는 최근 에 셸 스 크 립 트 를 배우 고 있 습 니 다. 짧 은 스 크 립 트 테스트 를 통 해 'syntax error near unexpected token' then '을 잘못 보 고 했 습 니 다.인터넷 구 글 을 한 바퀴 돌 았 지만 원인 을 발견 하지 못 했다.원래 내 가 if 조건 판단 을 쓸 때 if 뒤에 빈 칸 이 없 었 다.
if [ 判断条件 ]
      
if 조건 판단 을 쓸 때 if 뒤에 빈 칸 이 필요 할 뿐만 아니 라 '[' 뒤에 와 ']' 앞 에 빈 칸 이 있어 야 합 니 다.기 가 막 혀?한 가지 더 명심 해 야 할 것 은 셸 스 크 립 트 에서 "="을 사용 하여 변수 에 값 을 부여 할 때 "="양쪽 에 빈 칸 을 추가 해 서 는 안 됩 니 다. 여 자 는 변수 이름 을 하나의 명령 으로 실행 하여 "command not found"의 오 류 를 보고 하지만 if 조건 이 판단 할 때 if [판단 조건] 판단 조건 에서 비교 해 야 할 때 "="또는 ""!= "양쪽 모두 빈 칸 으로 구분 해 야 합 니 다. 또한 if 판단 을 쓸 때 then 을 잊 지 마 세 요. 여부 에 도 문제 가 있 습 니 다. 물론 elif (else if 에 해당) 는 선택 할 수 있 습 니 다."
      다음은 셸 스 크 립 트 에서 if 판단 에서 의 테스트 옵션 을 요약 합 니 다.
1. 문서 에 대한 판단
       트 루 로 돌아 가면...
       -e 파일 존재       -f file 은 regular 파일 입 니 다 (디 렉 터 리 나 장치 파일 이 아 닙 니 다)       -s 파일 길이 가 0 이 아 닙 니 다.       -디 렉 터 리       -b 파일 은 블록 장치 (플 로 피 디스크, cdrom 등) 입 니 다.       -c 파일 은 문자 장치 (키보드, modem, 사 운 드 카드 등) 입 니 다.       -p 파일 은 파이프 입 니 다.       -h 파일 은 심 볼 릭 링크 입 니 다.       -L 파일 은 심 볼 릭 링크 입 니 다.       -S 파일 은 socket 입 니 다.       -t 터미널 장치 에 연 결 된 파일 설명자           이 옵션 은 주어진 스 크 립 트 의 stdin [- t0] 이나 [- t1] 이 터미널 인지 확인 하 는 데 사 용 됩 니 다.       -r 파일 은 읽 기 권한 이 있 습 니 다. (사용자 가 이 test 를 실행 할 때)       -w 파일 에 쓰기 권한 이 있 습 니 다. (사용자 가 이 test 를 실행 할 때)       -x 파일 은 실행 권한 이 있 습 니 다 (사용자 가 이 test 를 실행 할 때)         -g  set - group - id (sgid) 는 파일 이나 디 렉 터 리 에 표 시 됩 니 다. 만약 디 렉 터 리 에 sgid 로고 가 있다 면 이 디 렉 터 리 에 생 성 된 파일 입 니 다. 이 디 렉 터 리 는 이 디 렉 터 리 를 만 든 사용자 그룹 에 속 합 니 다. 이 파일 을 만 든 사용자 의 그룹 과 같 지 않 습 니 다. work group 디 렉 터 리 공유 에 매우 유용 합 니 다. << UNIX 환경 고급 프로 그래 밍 중국어 버 전 >> 58 페이지 참조.         -u  set - user - id (suid) 로 고 는 파일 에 루트 권한 을 가 진 파일 을 실행 하면 실행 프로 세 스 가 루트 권한 을 가 집 니 다. 일반 사용자 라 도. [1] 시스템 하드웨어 에 액세스 해 야 하 는 실행 작업 (예 를 들 어 pppd 와 cdrecord) 에 유용 합 니 다. suid 로고 가 없 으 면 일반 사용자 (루트 권한 없 음)이 프로그램 을 실행 할 수 없습니다. << < UNIX 환경 고급 프로 그래 밍 중국어 버 전 >> 58 페이지 를 보십시오. - rwr - xr - t 1 root 178236 Oct 2 2000/usr/sbin/ppd 는 suid 를 설정 한 파일 에 대해 권한 표지 에 "s"가 있 습 니 다.        -k  붙 여 넣 기 위 치 를 설정 합 니 다. << UNIX 환경 고급 프로 그래 밍 중국어 버 전 >> 65 페이지 를 보십시오. "sticky bit"에 대해"save - text - mode 로 고 는 파일 권한 의 특수 한 형식 입 니 다. 이 로 고 를 설정 하면 이 파일 은 교환 구역 에 저 장 됩 니 다. 빠 른 액세스 목적 을 달성 하기 위해 디 렉 터 리 에 설정 하면 쓰기 권한 이 제 한 됩 니 다. sticky bit 비트 를 설정 한 문서 나 디 렉 터 리 에 대해 서 는 권한 표지 에"t "가 있 습 니 다.. drwxrwxrwt 7 root 1024 May 19 21: 26 tmp/사용자 가 없 을 때 stick bit 비트 비트 디 렉 터 리 의 소유자 이지 만 쓰기 권한 이 있 으 면 사용 자 는 이 디 렉 터 리 에서 자신 이 가지 고 있 는 파일 만 삭제 할 수 있 습 니 다. 이것 은 사용자 가 공 개 된 디 렉 터 리 에서 다른 사람의 파일 을 덮어 쓰 거나 삭제 하 는 것 을 방지 합 니 다. 예 를 들 어/tmp(물론 루트 나 디 렉 터 리 의 소유 자 는 파일 의 이름 을 마음대로 삭제 하거나 바 꿀 수 있 습 니 다). - O 파일 의 소유자 입 니 다. - G 파일 의 group - id 는 당신 과 같 습 니 다. - N 파일 의 마지막 부분 에서 지금까지 읽 혔 습 니 다. 수정 되 었 는 지 여부 입 니 다.       f1 -nt f2     파일 f1 대 f2 새       f1 -ot f2     f1 대 f2 늙 음       f1 -ef f2     f1 과 f2 는 모두 같은 파일 에 억지로 연결 되 어 있다.       !                비 - 위 테스트 결과 반전 (조건 이 빠 지면 true 로 돌아 갑 니 다)
2. 문자열 에 대한 판단
       str1 = str2       두 꼬치 가 같은 내용 과 길이 가 있 을 때 진실 입 니 다.       str 1! = str 2 꼬치 str 1 과 str 2 가 다 르 면 진짜 입 니 다.       -str 1 문자열 의 길이 가 0 보다 클 때 진실 (문자열 이 비어 있 지 않 음)       -z str 1 문자열 의 길이 가 0 일 때 진짜 (빈 문자열)
       str1          문자열 str1 이 비어 있 지 않 을 때 진실 입 니 다.
3. 숫자의 판단      int 1 - eq int 2 두 수 는 같다.
      int 1 - ne int 2 의 두 수 는 같 지 않다.
      int 1 - lt int 2 in t1 이 int 2 보다 크 면 진실 이다.
      int 1 - ge int 2 in t1 이 int 2 보다 크 면 진짜 입 니 다.
      int1 -lt int2      in t1 은 int 2 보다 작 으 면 진실 이다.
      int 1 - le int 2 in t1 이 int 2 보다 작 으 면 진짜 입 니 다.

좋은 웹페이지 즐겨찾기