ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쉘 스크립트 기본 문법 정리
    개발/쉘 스크립트 2023. 6. 4. 23:16

    쉘 스크립트 개요

    - 쉘이란 운영체제 상 여러 서비스를 구현하는 인터페이스를 제공하는 프로그램을 의미

    - 쉘 스크립트는 리눅스 및 유닉스 기반 시스템에서 사용되는 스크립트 언어

    - 커맨드 라인 명령어와 프로그래밍적인 요소를 조합하여 자동화된 작업을 수행하는 데 사용

    - 시스템 프로그래밍에서 익히는 스크립트로, 서버 작업 자동화 및 운영(DevOps)을 위해 사용

    쉘의 종류

    - Bourne Shell: 최초의 쉘

    - bash: Bourne-Again Shell로 명령형 편집 기능을 제공함

      (Linux 및 GNU 운영 체제와 함께 배포되는 Bourne Shell의 향상된 무료 버전)

    - ksh: 콘쉘, 주로 유닉스 기반의 OS에서 사용하며 명령형 편집 기능을 제공함

    - zsh: z쉘, 쉘 스크립트를 위한 명령 인프리터

    쉘 스크립트 파일(sh) 구성

    - 파일의 가장 위 첫 라인은 #!/bin/bash로 시작 -> 해당 스크립트 파일을 실행할 때 사용할 쉘(shell)의 경로를 지정하는 역할, bash 명령어를 입력할 것이라는 의미

    - 쉘 스크립트 파일은 코드를 작성한 후에는 실행 권한을 부여

    - 보통 '파일명.sh' 형태로 파일명을 작성

    쉡 스크립트 기본 문법 요소

    1. 주석:

    - '#' 기호를 사용하여 주석을 작성할 수 있음

    - 주석은 스크립트의 실행에 영향을 주지 않고 설명을 추가할 수 있음

    2. 변수 할당:

    - 변수를 선언하고 값 할당에는 '=' 기호를 사용

    - 변수 이름은 대소문자를 구분하며, 일반적으로 대문자로 작성되는 것이 관례

    - 변수 사용 시 '$' 기호를 접두사로 사로 사용

    3. 출력: 

    - 'echo' 명령을 사용하여 텍스트를 출력

    - 변수의 값을 출력할 때는 '$'를 사용하여 변수를 참조

    4. 조건문: 

    - 'if-else' 구문을 사용하여 조건에 따라 분기 가능

    - 조건은 대괄호 '[ ]'로 묶이며, 비교 연산자 (예: -eq, -ne, -lt, -gt)를 사용하여 조건을 평가

    5. 반복문: 

    - 'for' 또는 'while' 구문을 사용하여 반복 작업을 수행할 수 있음

    - 'for'는 주어진 범위나 리스트에 대해 반복하고, 'while'은 주어진 조건이 참인 동안 반복

    6. 함수: 

    - 함수를 정의하여 재사용 가능한 코드 블록을 생성할 수 있음

    - 함수는 'function' 키워드를 사용하여 정의하며, 호출할 때는 함수 이름을 사용

    7. 사용자 입력:

    - 'read' 명령을 사용하여 사용자로부터 키보드 입력을 받을 수 있음

    - 입력된 값은 변수에 할당되어 사용될 수 있음

    8. 파일 조작:

    - 파일을 생성, 읽기, 쓰기, 삭제 등 다양한 파일 조작 작업을 수행할 수 있음

    - 'cat', 'grep', 'sed' 등의 명령을 사용하여 파일을 처리할 수 있음

    9. 실행 권한:

    - 스크립트 파일에 실행 권한을 부여하여 직접 실행할 수 있도록 설정해야 함

    - 'chmod' 명령을 사용하여 실행 권한을 변경할 수 있음

    기본적인 터미널 명령어

    - pwd : 현재 위치 경로 출력

    - ls : 현재 위치한 곳에 존재하는 디렉토리(dir), 파일 출력

    - cd desktop : (현재 위치에서) desktop 디렉토리로 이동

    - cd .. : 이전 디렉토리로 이동

    기본적인 vi 명령어 (명령 모드)

    - i : 현재 커서 위치에 삽입 (입력모드로 변경)

    - dd : 한줄 잘라내기

    - yy : 한줄 복사하기 (ctrl+c)

    - p : 붙여넣기 (ctrl+v)

    - u : 직전 명령 취소 (ctrl+z)

    - h, j, k, l : 좌, 하, 상, 우

    - gg : 첫 줄 이동

    - G : 파일 끝 이동

    - gg > shift + v (V) > shift + g (G) > y : 첫줄 이동 > 선택 > 맨끝으로 이동 > 복사

    쉘 스크립트 예시

    - 첫 줄에는 #!/bin/bash 기입

    - 파일명을 shell_tutorial.sh로 만들고 권한 해결을 위해 터미널에서 chmod +x shell_tutorial.sh 실행

    - ./shell_tutorial.sh로 실행

     

    shell_tutorial.sh

    
    #!/bin/bash
    
    # 주석
    echo "---------주석--------------"
    echo "안녕하세요. 이것은 쉘 스크립트 예제입니다."
    
    echo "---------변수할당----------"
    # 변수 할당
    NAME="John"
    AGE=25
    
    echo "---------출력--------------"
    # 출력
    echo "제 이름은 ${NAME}이고, 나이는 ${AGE}세입니다."
    
    echo "---------조건문------------"
    # 조건문
    if [ ${AGE} -gt 18 ]; then
        echo "성인입니다."
    else
        echo "미성년자입니다."
    fi
    
    echo "---------반복문-----------"
    # 반복문
    for i in 1 2 3 4 5; do
        echo "반복문 예제: $i"
    done
    
    echo "---------함수-------------"
    # 함수
    say_hello() {
        echo "함수호출합니다!"
    }
    
    # 함수 호출
    say_hello
    
    echo "--------사용자 입력-------"
    # 사용자 입력
    echo "이름을 입력하세요: "
    read USER_NAME
    echo "안녕하세요, ${USER_NAME}님!"
    
    echo "--------파일 조작------------"
    # 파일 조작
    echo "테스트 텍스트 파일을 만듭니다. 출력 이후에 이 내용이 만들어지게 됩니다." > test3.txt
    cat test3.txt

     

    이후에 연결되는 내용: 리트코드 문제 풀기

    195. Tenth Line

    193. Valid Phone Numbers

    192. Word Frequency

    194. Transpose File

Designed by Tistory.