셸 프로 그래 밍 기초 지식 소결
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 옵션 을 닫 으 려 면-+로 바 꾸 면 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸 언어 인 코딩 규범 (주석)규범 적 고려: 안전 한 각도, 성능 의 각도, 코드 의 가 독성 하나. 정식 을 시작 하 다 (1) 주석 1) 환수 2) 일반 주석 3) 스 크 립 트 의 머리 주석...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.