Bash 프로그래밍-1 부

일반적으로 관리 또는 파일 관리 작업에 사용하지만 위로 de 리눅스 그 목적을 훨씬 뛰어 넘어 기능을 확장하여 스크립트 이 가이드는 Bash 프로그래밍에 대한 완전한 참조가 아니라 기본 명령과 구조에 대한 소개로, GNU / Linux 시스템의 성능을 확장 할 수 있습니다.

"스크립트"란 무엇입니까?

기본적으로 시스템이 특정 작업에 사용하는 특정 프로그래밍 언어로 작성된 코드가 포함 된 파일이라고 말합니다. 외부 입력 또는 그래픽 인터페이스가 필요하지 않지만 처리 된 데이터를 출력해야합니다 (사용자가 보지 않더라도).

Bash에서 사용하는 언어는 자체 인터프리터에 의해 정의되며 Korn Shell (ksh) 또는 C Shell (csh)과 같은 다른 Shell의 구문을 결합합니다. 콘솔에서 일반적으로 사용되는 많은 명령은 특정 배포에 엄격하게 관련된 명령을 제외하고 스크립트에서도 사용할 수 있습니다.

스크립트의 구조

시작하려면 텍스트 편집기가 있어야하며 프로그래밍을 원해야합니다. .sh 확장자로 저장 한 파일은 첫 번째 줄이 다음과 같은 한 콘솔에서 실행 (또는 해석) 할 수 있습니다.

#! / bin / bash

이것은 파일을 실행하기 위해 콘솔을 사용하도록 시스템에 지시합니다. 또한 # 문자를 사용하여 주석을 작성할 수 있습니다. 가장 간단한 예를 만들기 위해 다음 이미지와 같이 한 줄을 더 추가합니다.

echo 명령은 화면에 메시지를 표시합니다.이 경우 일반적인 "Hello world!" 저장하고 콘솔로 실행하면 결과를 볼 수 있습니다.

기본 명령

다음 명령은 일반적이며 모든 유형의 프로그램에 매우 유용합니다. 더 많은 것이 있음을 명확히하지만 지금은 다음을 다룰 것입니다.

별칭 : 단어 문자열을 더 짧은 단어로 대체하여 코드를 줄일 수 있습니다.

## Downloads 폴더 별칭 per = '/ home / user / Downloads'의 주소로 per라는 별칭을 생성합니다. unalias unalias per

break : for, while, until 또는 select 루프를 즉시 종료 할 수 있습니다 (루프에 대해서는 나중에 자세히 살펴 보겠습니다).

# 1에서 5까지의 숫자를 할당 할 루프를 만듭니다. # 1 2 3 4 5의 카운터에 대한 각 "루프의 회전"에 대해 # 문자 $로 분석되는 변수 #counter의 현재 값을 인쇄합니다. echo "$ counter"# 카운터 값이 3이면 [$ counter –eq 3] then # break는 break fi done에 대한 루프를 종료합니다.

계속-현재 루프를 무시하고 다음 루프로 이동한다는 점을 제외하면 break와 유사합니다.

# 1부터 5까지의 숫자를 할당 할 루프를 만듭니다. # 1 2 3 4 5의 카운터에 대한 "루프의 회전"마다 # 카운터 값이 3이면 [$ counter –eq 3] then # 계속은 다음 라운드로 건너 뛰어 나머지 #current주기가 분석되는 것을 방지합니다. 즉, #value 3이 인쇄되지 않습니다. 계속 fi echo "$ counter"완료

선언 : 조판처럼 변수를 선언하고 값을 할당합니다 (동일한 방식으로 작동 함). 몇 가지 옵션과 결합 할 수 있습니다. -i는 정수를 선언합니다. -r 값을 변경할 수없는 읽기 전용 변수의 경우; –A는 어레이 또는 "어레이"입니다. -f 기능; -x는 스크립트 자체의 환경 외부에서 "내보낼"수있는 변수의 경우입니다.

선언 –i num = 12 선언 –x pi = 3.14

help : 특정 명령에 대한 도움말을 표시합니다.

작업 : 실행중인 프로세스를 표시합니다.

# –c를 사용하면 명령 이름이 표시되고 –p # 각 프로세스의 pid (프로세스 ID)가 표시됩니다. 작업 -cp

let : 산술 식 평가

let a = 11 let a = a + 5 # 마지막으로 우리는 16의 값을 출력합니다. echo "11 + 5 = $ a"

local : 오류를 방지하기 위해 스크립트 자체의 기능에서 사용하는 것이 좋습니다. 선언 명령과 동일한 기능을 사용할 수 있습니다.

local v1 = "이것은 지역 변수입니다"

logout : 셸에서 완전히 로그 아웃 할 수 있습니다. 둘 이상의 셸 창으로 작업하는 경우에 유용합니다. 여기서 exit 명령은 한 번에 하나의 창만 종료 할 수 있도록합니다.

printf : 데이터를 인쇄하고 포맷 할 수 있습니다. 많은 옵션이 있으므로 몇 가지를 언급하겠습니다.

# % f는 부동 숫자로 인쇄하고, n은 새 행에 대해 인쇄합니다. printf "% fn"5 5.000000 # & d는 20 진수를 인수로 전달할 수 있습니다. printf "% d 개의 주문이 % d 달러로 평가됩니다 .n"500 20 달러 상당의 주문 500 건.

읽기 : 표준 입력에서 한 줄을 읽습니다 (예 : 키보드를 통해 데이터를로드하는 데 사용되는 모듈). 다음과 같은 옵션을 전달할 수 있습니다. -t 읽기 제한 시간을 제공합니다. -a 각 단어가 aname 배열의 위치에 할당되도록합니다. -d 행 끝에 기록되는 구분 기호를 사용합니다. 다른 사람들 중에서.

echo "이름을 입력하고 ENTER를 누르세요"# 변수 이름 읽기 이름 읽기 echo "이름은 $ 이름입니다"

유형 : 명령과 그 동작을 설명합니다. 각 명령에 대한 데이터 정의를 찾는 것이 유용 할 수 있습니다.

type –a '['#type은 [쉘 내장 명령입니다 [쉘 내장 명령입니다. # -a는 이름이 입력 된 실행 파일이 포함 된 디렉토리를 # 찾는 것을 허용합니다. [is / usr / bin / [

ulimit : 특정 시스템 리소스의 액세스 및 사용을 프로세스로 제한하며, 관리 변경을 허용하거나 다른 유형의 사용자를 대상으로하는 프로그램에 이상적입니다. 한계를 설정할 때 한계의 킬로바이트를 나타내는 숫자를 작성합니다.

# 우리는 현재 한계를 볼 수 있습니다. ulimit –a # -f는 사용자가 512000 Kb (500 #Mb)보다 큰 파일을 만들 수 없도록 제한합니다. ulimit –f 512000 # -v는 프로세스의 가상 메모리를 제한합니다. ulimit –v 512000

대기 : 특정 프로세스 또는 작업이 계속 진행될 때까지 기다립니다.

# 스크립트는 pid # 2585 프로세스가 수행되기를 기다립니다.

2585 대기

스크립트에 추가 할 수있는 다른 유용한 명령은 기호로 표시됩니다.

!! : 마지막 명령을 다시 실행하십시오.

wer : "wer"표현식으로 시작된 마지막 명령을 실행합니다.

'==', '! =', '>', '<', '> ='및 '<=': 관계 연산자.

| : 두 개의 정규식을 결합하는 데 일반적으로 사용되는 OR 연산자입니다.

: 표현식의 형식을 지정할 수있는 이스케이프 명령입니다. 예 : a는 소리 경고, n은 줄 바꿈, b는 백 스페이스 등입니다.

Juan Carlos Ortiz에게 감사드립니다!

기사의 내용은 우리의 원칙을 준수합니다. 편집 윤리. 오류를보고하려면 여기에.

10 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   중간 어려움

    큰! 어쨌든, 2 개의 코멘트 : Ubuntu 태그는 일반적인 것을 일반화하기 때문에 절반이 너무 많습니다. 그리고이 튜토리얼이 계속 발전한다면 서로 연결되어 있으면 좋을 것입니다….
    그 외에는이 움직임이 흥미 롭다!

  2.   Linux를 사용합시다

    좋은 공헌! 큰!

  3.   조반니 에스코바르 소사

    문제에 대해 더 자세히 알고 싶은 사람들을위한 참조 만 누락되었습니다. 우리 나라에서 찾기 쉽지는 않지만 좋은 것들은
    -Linux 명령, 편집기 및 쉘 프로그래밍에 대한 실용적인 가이드, Mark Sobell (8 장)
    -Pro Bash Programming, Chris FA Johnson (이는 다른 참고 자료 나 조금 더 많은 지식이있는 사람들을위한 것이지만).

    좋은 기사.

  4.   Linux를 사용합시다

    좋은 데이트! 감사합니다!

  5.   파트 리시오 도란 테스 자 마른

    : @ "다음으로 로그인"기능은 이전 댓글을 삭제 했으므로 더 자세히 요약하겠습니다.
    작업 -cp
    bash : 작업 : -c : 잘못된 옵션
    jobs : 사용법 : jobs [-lnprs] [jobspec…] 또는 jobs -x 명령 [args]

    -eq -gt -lt는 포럼과 포럼 사이에서 소수점 변수를 허용하지 않습니다. bc가 좋은 동맹이라는 것을 발견했습니다.
    if [`echo 9.999> 10 | bc` -eq 1]; 그때
    echo "9.999가 10보다 큽니다. 프로세서가 계속 작동하는지 확인하십시오."
    그렇지 않으면
    echo«9.999는 10보다 크지 않으며 모든 것이 정상적으로 작동합니다.
    fi

  6.   NotFromBrooklyn

    이 게시물은 bash 스크립팅의 모든 일반성을 매우 잘 요약합니다.
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    이 사이트에서 bash 특성에 대한 많은 질문과 답변을 찾을 수 있습니다.
    http://unix.stackexchange.com/questions/tagged/bash

    다음은 정말 멋진 스크립트입니다. 다른 사람의 스크립트를 읽고 배울 수 있습니다.
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   NotFromBrooklyn

    bash를 제외하고는 당신이 말하는 것에 맞습니다. 내가 본 모든 시스템에는 / bin / bash에 bash가 있습니다.

    그러나 python, perl, ruby ​​등의 경우에는 사용하는 것이 좋습니다. 나는한다

  8.   프로듀서이자 유일한 멤버 인 Guille

    우연히도 대학에서 우리는 bash 스크립팅을 사용하므로 데이터는 10입니다.

  9.   알렉스 VI

    PDF 버전을 다운로드하면 좋을 것입니다! 😀

  10.   마르코 안토니오 데 푸엔테스

    아주 좋은 사이트입니다. 마침내 유용한 것을 찾았습니다. 감사합니다.