제1장: The Missing Code Library -- 2. 합 법화 입력

2017 단어 linuxshellbash
합 법화 입력: 숫자 와 알파벳 만 허용
   사용 자 는 설명 을 무시 하고 잘못된 데 이 터 를 입력 하 는 경우 가 많다.셸 스 크 립 트 개발 자로 서 이 오 류 를 차단 하고 바로 잡 아야 합 니 다.
   전형 적 인 상황 은 파일 이름 이나 데이터베이스 키 를 만 날 수 있다 는 것 이다.사용자 에 게 대소 문자 와 숫자 로 구 성 된 문자열 을 입력 하 라 고 알려 줍 니 다. 구두점 이 없고 특수 문자 가 없 으 며 빈 칸 이 없습니다.그들 은 입력 이 정확 합 니까?이것 이 바로 이 스 크 립 트 가 테스트 할 내용 입 니 다.
validAlphaNum.sh
 # validAlphaNum.sh -         、    
 
 #!/bin/sh
 
 validAlphaNum()
 {
     #      :      +    +  ,  0;  ,  1
 
     #            
     compressed="$(echo $1 | sed -e 's/[^[:alnum:]]//g')"
 
     if [ "$compressed" != "$input" ]; then
         return 1
     else
         return 0
     fi
 }

이 함수 의 예제 용법.다음 코드 를 직접 추가 합 니 다.
validAlphaNum. sh 중:
validAlphaNum.sh
 echo -n "  :"
 read input
 
 if ! validAlphaNum "$input"; then
     echo "          。" >&2
     exit 1
 else
     echo "    。"
 fi
 
 exit 0

스 크 립 트 분석:   스 크 립 트 의 논 리 는 매우 명확 하 다.우선, 그것 은 sed 로 입력 을 새로운 것 으로 변환 합 니 다.그리고 새로운 데이터 와 원본 을 비교 했다.두 개가 똑 같 으 면 완벽 하 다.그렇지 않 으 면 변환 중 에 잃 어 버 린 데 이 터 는 문자 숫자의 집합 에 속 하지 않 기 때문에 원본 입력 은 불법 입 니 다.   sed 의 특수 한 역할 은 POSIX 문자 류 [: alnum:] 에 없 는 데 이 터 를 처리 하 는 것 입 니 다.이 문자 류 는 모든 대문자, 소문 자, 숫자의 집합 이다.만약 sed 처리 후의 데이터 가 이전의 입력 과 일치 하지 않 는 다 면 모든 자모 숫자의 이동 은 이러한 문 제 를 보 여 줍 니 다. 입력 문자열 (불법) 에 비 숫자 자모의 존재 가 있 고 함 수 는 비 0 값 을 되 돌려 줍 니 다.
스 크 립 트 실행:   이 각본 자 체 는 완비 되 어 있다.그것 은 입력 을 알려 주 고 결과 가 합 법 적 인지 여 부 를 알려 줄 것 이다.이 함수 의 더욱 전형 적 인 용법 은 스 크 립 트 나 라 이브 러 리 의 머리 에 두 는 것 이다.12 번 째 스 크 립 트 에서 보 여 드 리 겠 습 니 다.   이 스 크 립 트 는 매우 좋 은 일반적인 셸 스 크 립 트 프로 그래 밍 기술 을 보 여 주 었 다. 먼저 다음 함 수 를 쓴 다음 에 이어서 테스트 해 보 자.끝 난 후에 이 함 수 를 더 크 고 완 비 된 스 크 립 트 에 넣 으 세 요.이렇게 하면 너 에 게 앞으로 많은 일 을 절약 할 수 있 을 것 이다.
결과:
./validAlphaNum.sh   :valid123SAMPLE
    。
./validAlphaNum.sh   :this is most assuredly NOT valid, 12345

좋은 웹페이지 즐겨찾기