셸 프로 그래 밍 기초 지식 소결

1.파일 형식 소개 Liux 시스템 에는 다음 과 같은 7 가지 파일 형식 이 포함 되 어 있 습 니 다.d 디 렉 터 리-일반 파일 l 심 볼 릭 링크 s 소켓 파일 b 블록 장치 파일 c 문자 장치 파일 p 이름 파이프 파일
2.정규 표현 식 정규 표현 식 은 셸 프로 그래 밍 에서 매우 중요 합 니 다.
파일 이나 명령 출력 에서 텍스트 를 추출 하거나 걸 러 낼 때.정규 표현 식(RE)을 사용 할 수 있 습 니 다.정규 표현 식 은 특수 하거나 특수 하지 않 은 문자열 모드 의 집합 입 니 다.
기본 메타 문자 집합:^줄 의 첫 번 째 만 일치 합 니 다.$줄 끝 에 만 일치 합 니 다.*하나의 문자 뒤에 붙 어 있 는*,0 개 이상 의 문자 와 일치 합 니 다.[][]내 문자 와 일치 합 니 다.단일 문자 일 수도 있 고 문자 시퀀스 일 수도 있 습 니 다.사용 가능-[]내 범 위 를 표시 할 수 있 습 니 다.예 를 들 어[1-5]는[1,2,3,4,5]와 같 습 니 다.원 문자 의 특수 한 의 미 를 차단 합 니 다.예 를 들 어$는 문자$를 표시 하고 줄 끝 과 일치 하지 않 습 니 다.임의의 단일 문자 와 일치 합 니 다.pattern{n}   pattern 이 나타 나 는 횟수 npattern{n,}m 는 pattern 이 나타 나 는 횟수 와 일치 하지만 횟수 는 npattern{n,m}과 pattern 이 나타 나 는 횟수 는 n 과 m 사이(n,m 는 0-255)임 을 나타 낸다.
일반적인 예:실행 가능 한 파일 표시:ls Cl|grep...x..x.x 폴 더 만 표시:ls Cl|grep  ^d 모든 빈 줄 일치:^$모든 단어 일치:[A-Z a-z]*모든 비 알파벳 문자 일치:[^A-Z a-z]8 글자 가 포 함 된 줄:^...
더 많은 내용 은 정규 표현 식 의 상세 한 자 료 를 찾 아 학습 을 강화 하 십시오.
3、문자 클래스 설명 에 자주 사용 되 는 문자 클래스 목록:[:alnum:]알파벳 숫자[a-z A-Z 0-9][:alpha:]알파벳[a-z A-Z][:blank:]빈 칸 이나 탭 키[:cntrl:]모든 제어 문자[:digit:]숫자[0-9][:graph:]모든 시각 적 문자(빈 칸 없 음)[:lower:]소문 자[a-z][:print:]비 제어 문자[:punct:]구두점 문자[:space:]빈 칸[upper:]대문자[A-Z][:xdigit:]16 진수[0-9 a-f A-F]
문자 류 를 사용 하면 비 영어 locale 에 더욱 잘 적응 할 수 있 습 니 다.
4.따옴표 유형 셸 에는 모두 네 가지 인용 유형 이 있 습 니 다."더 블 따옴표","작은 따옴표".  반 따옴표    역 사선
설명:""$,',','을 제외 한 임의의 문자 나 문자열 을 참조 할 수 있 습 니 다."의 변 수 는 변 수 를 정상적으로 표시 할 수 있 습 니 다."""와 유사 합 니 다.셸 은 인용 값 을 무시 합 니 다.girl='girl'       echo “The ‘$GIRL' did well”       'girl'did well
설명: ` `시스템 명령 의 출력 변 수 를 설정 하 는 데 사 용 됩 니 다.셸 은`의 내용 을 시스템 명령 으로 하고 실행 합 니 다.    예 를 들 어 echo'date'는 현재 시스템 시간 을 인쇄 합 니 다.
설명:    특수 한 의 미 를 가 리 는 문자:&  *  +  ^  $  `  “  |  ?    예 를 들 어 expr 12*12 는 144 를 출력 합 니 다.
5.변수 설정 의 몇 가지 모드 변 수 를 설정 할 때 서로 다른 모드:valiablename=value   실제 값 을 variable 로 설정name 중 valiablename+value   variable 를 설정 하면name,그 값 을 다시 설정 합 니 다 valiablename:?value  variable 를 설정 하지 않 으 면name,정의 되 지 않 은 사용자 오류 정보 먼저 표시 valiablename?value   variable 를 설정 하지 않 으 면name,시스템 오류 정보 표시 valiablename:=value  variable 를 설정 하지 않 으 면name,그 값 을 설정 valiablename-value   위 와 같 지만,추출 값 은 variable 에 설정 되 지 않 습 니 다.name
주의:상기 몇 가지 모델 의 유연 한 응용 은 프로 그래 밍 기 교 를 어느 정도 향상 시 킬 것 입 니 다.
6.조건 테스트 test 명령 은 문자열,파일 상태 와 숫자,expr 테스트 와 수치 출력 을 테스트 하 는 데 사 용 됩 니 다.Test 형식:test condition 또는[condition](특히 주의해 야 할 것 은 condition 의 양쪽 에 빈 칸 이 있어 야 합 니 다.그렇지 않 으 면 오 류 를 보고 할 수 있 습 니 다)test 명령 이 0 으로 돌아 가 는 것 은 성공 을 표시 합 니 다.다음은 test 의 세 가지 테스트 를 설명 합 니 다:파일 상태 테스트(자주 사용 하 는)-d           폴 더-f 여부 테스트            일반 파일 여부 테스트-L          파일 연결 여부 테스트-r           파일 읽 을 수 있 는 지 테스트-w         파일 을 쓸 수 있 는 지 시험 하기-x           파일 실행 가능 여부 테스트-s           파일 이 비어 있 는 지 테스트 합 니 다.
1.문자열 테스트 5 가지 형식:test  “string”           test  string_operator  “string”           test  “string”  string_operator  “string”           [ string_operator  “string” ]           [ “string”  string_operator  “string"]그 중 stringoperator    = 두 문자열 이 같다.    !=    두 문자열 이 같 지 않다.    -z   빈 문자열    -n   비 빈 문자열
2.수치 테스트 두 가지 형식:"number"  number_operator  “number”          [ “number”  number_operator  “number"]그 중:numberoperator  、-ne、-gt、-lt、-ge
예 를 들 면:  NUMBER=130       [ “990”  Cle  “995”  Ca  “NUMBER”  -gt  “133” ]       (그 중에서-a 는 전후 결과 가'와'임 을 나타 낸다)
expr 명령 은 보통 정수 값 에 사용 되 지만 문자열 에 도 사용 할 수 있 습 니 다.형식:  expr srgument operator argument 예:  expr 10 + 10        expr 10^2(10 의 제곱)        expr $value + 10
증분 계수--expr 순환 에서 가장 기본 적 인 용법:  LOOP=0        LOOP=`expr $LOOP + 1`
3.패턴 일치:지정 한 콜론 옵션 을 통 해 문자열 의 문자 수 를 계산 합 니 다.예 를 들 어:  value=account.doc        expr $value : `(.*).doc`        출력 계 정
7.명령 수행 순서
&&명령 을 성공 적 으로 실행 한 후 다음||명령 을 실행 하 는 데 실 패 했 을 때 다른 명령 을 실행 합 니 다()현재 셸 에서 명령 을 실행 합 니 다(형식:(명령 1;명령 2;...){}같은()예:  comet mouth_end || ( echo “hello” | mail dave ;exit ) ()가 없 으 면 셸 은 마지막 명령(exit)을 직접 실행 합 니 다.
셸 프로 그래 밍 에서 명령 실행 순 서 는 프로그램의 실행 결 과 를 결정 할 때 도 있 고&&|응용 이 가장 광범 위 합 니 다.
8.스 크 립 트 디 버 깅 스 크 립 트 디 버 깅 에 가장 유용 한 디 버 깅 스 크 립 트 도 구 는 echo 명령 입 니 다.변수 나 작업 에 관 한 정 보 를 수시로 인쇄 하여 포 지 셔 닝 오 류 를 도 울 수 있 습 니 다.인쇄 마지막 상태($?)도 사용 할 수 있 습 니 다.명령 은 명령 의 성공 여 부 를 판단 하 는데,이때 주의해 야 할 것 은 테스트 할 명령 을 실행 한 후 즉시
출력$?,그렇지 않 으 면$?달라 질 거 야.
set 명령 도 스 크 립 트 테스트 를 보조 할 수 있 습 니 다:Set Cn           명령 을 읽 지만 Set Cv 를 실행 하지 않 습 니 다.           읽 은 모든 줄 표시 Set Cx           모든 명령 과 인 자 를 set 옵션 을 닫 으 려 면-+로 바 꾸 면 됩 니 다.

좋은 웹페이지 즐겨찾기