Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Linux BASH 스크립팅의 세계를 항해 – 파트 III

'쉘 스크립팅의 이전 다음 기사 ' 시리즈는 높이 평가되었고 따라서 나는 이 기사를 끝없는 학습 과정을 확장하기 위해 작성합니다.

Linux BASH 스크립팅의 세계를 항해 – 파트 III
  1. 기본 Linux 셸 스크립팅 언어 팁 이해 – 1부
  2. 쉘 프로그래밍을 배우기 위한 Linux 초보자를 위한 5가지 쉘 스크립트 – 2부
배시 키워드

키워드 컴퓨터 언어에 특별한 의미를 갖는 단어 또는 기호입니다. 다음 기호와 단어는 Bash에 특별한 의미를 갖습니다. 인용 부호가 없고 명령의 첫 단어일 때.

! esac select } case fi then [[ do for until ]] done function 동안 elifif time else {

대부분의 컴퓨터 언어와 달리 Bash 키워드를 변수 이름으로 사용할 수 있습니다. 이것은 스크립트를 읽기 어렵게 만들 수 있지만. 스크립트를 이해하기 쉽게 하려면 변수 이름에 키워드를 사용해서는 안 됩니다.

명령은 쉘에서 $로 구현됩니다. (명령). 전체 명령 경로를 포함해야 할 수도 있습니다. 예:$(/bin/date) , 올바른 실행을 위해.

'whereis를 사용하여 특정 프로그램의 경로를 알 수 있습니다. ' 명령. 예:날짜가 어디인지

[admin@wsxdn.com /]# 여기서 datedate:/bin/date /usr/share/man/man1/date.1.gz

지금은 충분합니다. 우리는 지금 이 이론에 대해 많이 이야기하지 않을 것입니다. 스크립트로 이동합니다.

현재 작업 디렉토리 이동

실행하는 동안 스크립트 끝에 숫자 값을 제공하기만 하면 현재 작업 디렉토리에서 원하는 레벨 위로 이동합니다.

#! /bin/bash LEVEL=$1 for ((i =1; i <=LEVEL; i++)) do CDIR=../$CDIR done cd $CDIR echo "현재 위치:"$PWD exec /bin/bash 

위의 코드를 "up.sh로 저장 ", 바탕 화면에서. 실행 가능하게 만드십시오(chmod 755 up.sh ). 실행:

./up.sh 2 (현재 작업 디렉토리를 두 ​​단계 위로 이동합니다).
./up.sh 4 (현재 작업 디렉토리를 4단계 위로 이동합니다).

용도 및 적용 분야

라이브러리를 포함하는 폴더 내부의 폴더를 포함하는 더 큰 스크립트에서 , 바이너리 , 아이콘 , 실행 파일 , 등 다른 위치에 있는 개발자는 이 스크립트를 구현하여 매우 자동화된 방식으로 원하는 위치로 이동할 수 있습니다.

참고 :For는 위 스크립트의 루프이며 루프의 값이 true일 때까지 계속 실행됩니다.

샘플 출력
[admin@wsxdn.com /]# chmod 755 up[admin@wsxdn.com /]# ./up.sh 2현재 위치:/[admin@wsxdn.com /]# ./up.sh 4 위치:/ [admin@wsxdn.com /]#

up.sh 다운로드

임의의 파일 또는 폴더 만들기

중복 가능성이 없는 임의의 파일(폴더)을 생성합니다.

#! /bin/bashecho "Hello $USER";echo "$(uptime)">> "$(date)".txtecho "파일을 $(pwd)에 저장 중입니다."

이것은 간단한 스크립트이지만 작동하는 것은 그리 간단하지 않습니다.

  1. '에코 ' :따옴표 안에 있는 모든 내용을 인쇄합니다.
  2. '$ ' :쉘 변수입니다.
  3. '>> ' :출력이 date의 출력으로 리디렉션됩니다. 명령 다음에 txt 확장자.

date의 결과를 알고 있습니다. 명령은 날짜입니다. , 및 시간 시간 후 , 분, 연도와 함께 . 따라서 파일 이름 중복 가능성 없이 조직화된 파일 이름에 대한 출력을 얻을 수 있습니다. 사용자가 타임스탬프로 생성된 파일이 필요할 때 매우 유용할 수 있습니다. 나중에 참조할 수 있습니다.

샘플 출력
[admin@wsxdn.com /]# ./randomfile.sh Hello server 귀하의 파일은 /home/server/Desktop에 저장되고 있습니다

바탕 화면에 생성된 파일을 오늘 날짜와 현재 시간으로 볼 수 있습니다.

[admin@wsxdn.com /]# nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt 13:51:52 up 3:54, 1 user, load average:0.09, 0.12, 0.08

위의 스크립트에 대한 보다 자세한 구현은 위의 원칙에 따라 작동하며 Linux의 네트워크 정보를 수집하는 데 매우 유용합니다. 서버.

randomfile.sh 다운로드

네트워크 정보를 수집하는 스크립트

Linux에서 네트워크 정보 수집 섬기는 사람. 스크립트가 너무 커서 전체 코드와 스크립트 출력을 여기에 게시할 수 없습니다. 따라서 아래 다운로드 링크를 사용하여 스크립트를 다운로드하고 직접 테스트하는 것이 좋습니다.

참고 :lsb-core를 설치해야 할 수도 있습니다. 패키지 및 기타 필수 패키지 및 종속성. 적합 또는 필요한 패키지. 분명히 루트여야 합니다. 여기에 사용된 대부분의 명령이 루트로 실행되도록 구성되어 있기 때문에 스크립트를 실행합니다. .

샘플 출력
[admin@wsxdn.com /]# ./collectnetworkinfo.sh network.20-07-13.info.txt에 작성된 네트워크 구성 정보 . 이 파일을 admin@wsxdn.com_provider.com으로 이메일을 보내주십시오. . ktop

스크립트에서 위의 이메일 주소를 변경하여 메일을 받을 수 있습니다. 자동 생성된 파일을 볼 수 있습니다.

collectnetworkinfo.sh 다운로드

대문자를 소문자로 변환하는 스크립트

대문자를 변환하는 스크립트 소문자로 출력을 "small.txt 텍스트 파일로 리디렉션합니다. "는 필요에 따라 수정할 수 있습니다.

#!/bin/bash echo -n "파일 이름을 입력하세요:" if [ ! -f $ 파일 이름 ]; then echo "$fileName 파일 이름이 존재하지 않습니다." exit 1 fi tr '[A-Z]' '[a-z]' <$fileName>> small.txt

위의 스크립트는 대문자에서 클릭 한 번으로 모든 길이의 파일 대소문자를 변환할 수 있습니다. 소문자로 필요한 경우 거의 수정하지 않고 그 반대의 경우도 마찬가지입니다.

샘플 출력
[admin@wsxdn.com /]# ./convertlowercase.sh 파일 이름 입력 :a.txt 초기 파일:ABCDEFGHIJK...

새 파일(small.txt ) 출력:

abcdefghijk...

convertlowercase.sh 다운로드

간단한 계산기 프로그램

#! /bin/bash clear sum=0 i="y" echo " 하나의 번호를 입력하세요." read n1 echo "두 번째 번호를 입력하세요." read n2 while [ $i ="y" ] do echo "1.Addition" echo "2.Subtraction" echo "3.Multiplication" echo "4.Division" echo "선택 사항 입력" read ch case $ch in 1) sum=`expr $n1 + $n2` echo "Sum ="$sum;; 2)sum=`expr $n1 - $n2` echo "Sub ="$sum;; 3)sum=`expr $n1 \* $n2` echo "Mul ="$sum;; 4)sum=`expr $n1 / $n2` echo "Div ="$sum;; *)echo "잘못된 선택";; esac echo "계속하시겠습니까(y/n))?" i if [ $i !="y" ]를 읽은 다음 fi 완료
종료
샘플 출력
[admin@wsxdn.com /]# ./simplecalc.sh 1번을 입력하세요. 12 두 번째 번호를 입력합니다. 14 1.더하기 2.빼기 3.곱하기 4.나누기 선택 항목을 입력하세요. 1 Sum =26 계속하시겠습니까(y/n))? y1.덧셈 2.빼기 3.곱하기 4.나누기 3 mul =14812계속하시겠습니까(y/n)) ? n

simplecalc.sh 다운로드

이렇게 간단한 방법으로 강력한 프로그램을 계산으로 만드는 것이 얼마나 쉬운지 보았습니까? 끝이 아닙니다. 관리 관점에서 폭넓은 관점을 다루는 이 시리즈의 기사를 하나 이상 준비할 것입니다.

지금은 여기까지입니다. 독자이자 최고의 비평가가 되려면 이 기사에서 얼마나 그리고 무엇을 즐겼는지, 그리고 향후 기사에서 보고 싶은 것이 무엇인지 알려주는 것을 잊지 마십시오. 어떤 질문이든 댓글로 환영합니다. 그때까지 건강 유지 , 안전함조정 . 좋아요공유 널리 퍼질 수 있도록 도와주세요.