링크 ux 에서 셸 의 10 가지 가장 좋 은 실천

5864 단어
 UNIX/Linux 에서 일 하 는 모든 프로그래머 는 셸 스 크 립 트 프로 그래 밍 을 잘 할 수 있 습 니 다.그러나 모두 가 문 제 를 해결 하 는 방식 은 다르다. 이것 은 전문 지식 에 대한 파악 정도, 명령 의 종류, 문 제 를 보 는 방식 등에 달 려 있다.셸 스 크 립 트 프로 그래 밍 초급 단계 에 있 는 프로그래머 들 에 게 적절 한 방법 을 따 르 면 프로 그래 밍 기술 을 더욱 빠 르 고 잘 배 울 수 있 습 니 다.셸 스 크 립 트 프로 그래 밍 을 배 울 수 있 는 방법 에 대해 논의 해 보 겠 습 니 다.
1. 손 을 많이 쓴다.
어떤 사람들 은 먼저 전체 교 재 를 통독 한 후에 비행기 에 올 라 연습 할 것 이다.이런 방법 은 일부 사람들 에 게 적 용 될 수 있 지만, 나 는 그것 을 그다지 좋아 하지 않 는 다.나의 건 의 는 먼저 가장 기본 적 인 것 을 배우 고 인 코딩 을 시작 할 수 있 는 지식 을 배우 면 된다 는 것 이다.그 후에 간단 한 절 차 를 쓰기 시작 했다.지식 부족 으로 멈 출 수 밖 에 없 을 때 책 으로 돌아 가 알 고 싶 은 부분 을 읽 고 프로젝트 를 계속 하 세 요.이렇게 반복 되 어 너의 수준 을 끊임없이 향상 시킨다.이런 배우 면서 하 는 방법 은 일찍이 나 에 게 많은 이익 을 주 었 다.
2. 명령 프롬프트 활용
때때로 우리 가 쓴 스 크 립 트 에 약간의 오류 가 있다.우 리 는 오 류 를 수정 하고 스 크 립 트 를 실행 하지만 시스템 이 다시 오 류 를 보고 합 니 다.그리고 이 잘못 보고 하 는 과정 은 여러 차례 발생 할 수 있다.이런 상황 에 부 딪 히 면 먼저 문제 가 있 는 줄 이나 명령 을 찾 아야 한다. 이것 은 일부 디 버 깅 문 구 를 통 해 쉽게 할 수 있다.이 문 구 를 발견 하면 명령 프롬프트 에서 같은 문 구 를 실행 해 보 세 요.만약 그것 이 명령 프롬프트 아래 에서 정상적으로 운행 하기 시작한다 면, 너 는 그것 이 정상적으로 운행 하지 못 하 는 원인 을 쉽게 추측 할 수 있 을 것 이다.잘못된 입력 명령 이나 환경 변수 가 일치 하지 않 거나 다른 곳 에서 바 이 너 리 파일 을 참조 한 것 일 수도 있 습 니 다.이런 방법 은 디 버 깅 을 간단 하고 쉬 워 지게 할 것 이다.
셸 스 크 립 트 프로 그래 밍 에 대한 10 가지 최선 의 실천
3. 문 제 를 전면적으로 고려 해 야 한다.
이제 문제 좀 봅 시다.너 는 어떤 문제 에 관 한 해결 방안 을 생각 했 지만, 이 해결 방안 은 소형 문서 처리 에 만 적합 하 다.그러나 비교적 큰 서 류 를 처리 할 때 당신 은 어떻게 해 야 합 니까?예 를 들 어 우 리 는 파일 의 첫 줄 내용 을 얻 고 싶 습 니 다.
1 sed   -n  '1p'   file
이 문 구 는 당연히 네가 원 하 는 첫 줄 의 내용 을 제시 할 것 이다.그런데 처리 한 서류 에 수백 만 개의 기록 이 포함 되 어 있다 면?위의 sed 명령 은 파일 의 첫 줄 내용 을 출력 할 수 있 지만 대형 파일 을 처리 하려 면 반드시 성능 상의 문 제 를 가 져 올 것 입 니 다.
해결 방법:
1 sed   -n  '1p;1q'   file
이 명령 은 첫 줄 만 출력 하고 프로그램 을 종료 합 니 다.
4. 항상 다른 방법 을 시도 한다.
당신 은 스 크 립 트 를 쓸 때 문제 에 부 딪 힌 후에 독특한 해결 방법 을 찾 았 습 니 다.다음 에 당신 은 우연히 비슷 한 문 제 를 만 났 습 니 다. 이 때 는 이전에 사용 한 방법 으로 해결 하지 마 세 요.다른 방법 을 시험 해 보 세 요.어느 날 다시 이런 상황 이 닥 치면 다른 방법 을 시도 해 보 자.
예 를 들 면:
1234 if   [ $? - eq   0 ] then echo   "Success" fi
다른 방법:
1 [ $? - eq   0 ] &&  echo   "Success"
이제 이 블 로그 에 '.........................................................................이 모든 글 의 목적 은 이 블 로 그 를 구독 하 는 개발 자 들 이 시 야 를 넓 히 고 생각 을 넓 히 는 데 도움 을 주 는 것 이다.
5. 빠 른 인 코딩
스 크 립 트 는 우리 의 시간 을 절약 하고 생산력 을 높 일 수 있다.그런데 우리 가 스 크 립 트 와 테스트 에 쓰 는 시간 이 아직 적은 가?우 리 는 스 크 립 트 를 쓰 고 싶 습 니 다. 그래서 파일 을 열 고 코드 를 쓰 고 파일 을 저장 한 후에 스 크 립 트 를 실행 합 니 다. 시스템 이 잘못 되 었 습 니 다. 우 리 는 파일 수정, 저장, 실행 을 다시 엽 니 다. 이 과정 에서 많은 시간 이 걸 립 니 다.이전 'SHELL 프로 그래 밍 가이드' 라 는 제목 의 글 에서 명령 프롬프트 를 되 돌아 보지 않 고 스 크 립 트 를 작성 하고 실행 중인 스 크 립 트 를 테스트 하 는 법 을 배 울 수 있 습 니 다.이 방법 들 은 인 코딩 의 속 도 를 가속 화 할 수 있다.나 는 스 크 립 트 를 쓸 때 항상 이런 방법 을 사용한다.그리고 나 는 그들 이 나 를 도와 많은 시간 을 절약 했다 고 확신 할 수 있다.
6. 내부 명령 을 자주 사용
어떤 경우 에 도 외부 명령 이 아 닌 내부 명령 을 사용 하 는 것 을 고려 하 세 요.내부 명령 으로 영원히 좋 을 거 야.처리 중인 입력 파일 의 크기 에 따라 내부 명령 은 성능 면 에서 많은 것 을 절약 할 수 있 습 니 다.항상 내부 명령 이나 외부 명령 을 선택 할 수 있 는 기 회 는 없 지만 어떤 경우 에는 올 바른 선택 을 할 수 있 을 것 이다.
7 、 cat 명령 을 사용 할 필요 가 없습니다
이것 은 우리 가 자주 포럼 에서 토론 하 는 화제 중의 하나 다.cat 명령 을 사용 할 필요 가 없다 는 것 은 어떤 때 는 cat 명령 을 사용 할 필요 가 없다 는 것 을 알 게 될 것 이다.때로는 불필요 한 cat 명령 을 사용 하면 코드 가 추 해 보이 고 성능 에 문제 가 생 길 수 있 습 니 다.
예 를 들 면:
1 cat   /etc/ <a href= "http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=passwd" class= "bdcs-inlinelink"   target= "_blank" > passwd < /a > |  grep   guru
정확 한 방법 은:
1 grep   guru  /etc/passwd
8. 잘못된 정보 자세히 읽 기
프로그래머 가 자주 저 지 르 는 실 수 는 우리 가 입력 한 명령 이 틀 렸 을 때 우리 대부분 은 잘못된 정 보 를 얼핏 보 았 을 뿐 진지 하 게 읽 지 않 는 다 는 것 이다.잘못된 정보 에 해결책 이 포 함 된 경우 가 많다.더 중요 한 것 은 때때로 우리 가 어떤 오 류 를 수정 하고 다시 실행 한 후에 도 시스템 은 여전히 오 류 를 보고 할 수 있다 는 것 이다.그런 후에 우 리 는 다시 수정 하 였 으 나 시스템 은 다시 잘못 보고 하 였 다.이것 은 아마도 오랫동안 지 속 될 것 이다.그러나 실제 적 으로 낡은 오 류 는 이미 고 쳐 졌 을 수 있 으 며, 단지 다른 새로운 오류 가 발생 했 기 때문에 시스템 이 다시 오 류 를 보고 하 게 되 었 을 뿐이다.우 리 는 왜 수 정 된 코드 가 여전히 정상적으로 작 동 하지 않 는 지 여전히 의심 하고 있다.따라서 잘못된 정 보 를 자세히 읽 는 습관 을 들 여 라.
9. 비대 한 명령 을 피하 라
큰 파일 에서 어떤 정 보 를 선택 하려 고 시도 하고 있 습 니 다.다음 에 너 는 이 기능 을 실현 하기 위해 많은 명령 을 쓸 것 이다.그러나 정확 한 결 과 를 얻 을 수 있 음 에 도 불구 하고 당신 이 쓴 명령 은 좋 지 않 고 난해 합 니 다.따라서 우 리 는 가능 한 한 이런 상황 을 피해 야 한다.아래 의 이 예 는 바로 코드 최적화 의 좋 은 예 이다.
예 를 들 어 사용자 ID 값 이 502 인 사용자 이름 을 검색 합 니 다.
다음 명령 이 좋 지 않 습 니 다:
1 grep   502  /etc/passwd   cut   -d: -f1
이 명령 도 좋 지 않다.
1 grep   502  /etc/passwd   awk   -F  ":"   '{print $1}'
이것 이 야 말로 좋 은 명령 이다.
1 awk   -F  ":"   '$3==502{print $1}'   /etc/passwd
상기 예시 와 같이 간단 한 awk 명령 으로 검색 작업 을 완성 할 수 있 습 니 다.
10. 아 끼 지 말고 주석 추가
스 크 립 트 를 썼 습 니 다. 한두 주 후에 스 크 립 트 파일 을 다시 열 었 습 니 다. 주석 이 없 으 면 코드 를 이해 하 는 데 많은 시간 이 걸 릴 수 있 습 니 다.코드 는 우리 가 직접 썼 지만, 이것 은 여전히 우리 의 많은 시간 을 낭비 할 것 이다.스 크 립 트 는 시간 을 절약 하 는 데 쓰 이기 때문에 시간 을 절약 하 는 파일 을 이해 하 는 데 시간 을 낭비 할 이유 가 없다.따라서 스 크 립 트 에 주석 을 추가 하 는 좋 은 습관 을 기 르 세 요.이 주석 들 은 상세 할 필요 가 없 이 자신 이나 다른 사람 이 읽 을 수 있 게 하면 된다.
LINUX 시스템 의 초보 자 를 깊이 체험 하고 싶다 면 팡 드 리 눅 스 소프트웨어 센터 를 다운로드 해 사용 해 보 는 것 도 좋다.
무료 다운로드 주소:http://www.nfs-cloud.cn:81/appCenter/open/softcenter 

좋은 웹페이지 즐겨찾기