ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Linux Shell Script
    STUDY/리눅스 2020. 12. 23. 12:04

    1. shell script 파일 생성

    touch 파일명.sh

     

    2. 파일 실행 권한 부여(chmod)

    • 권한 종류 : r(읽기, 4) / w(쓰기, 2), x(실행, 1)
    • 0 - 7까지 숫자를 통해 권한을 부여할 수 있다.

     

    chmod 755 파일명.sh    // 소유자에게는 rwx, 그룹&기타사용자에게는 r-x 권한 부여

    chmod +x 파일명.sh     // 모든 사용자에게 실행(x)권한 부여

     

    3. vi편집기로 스크립트 작성

    vi 파일명.sh    // vi편집기로 쉘 스크립트 파일 열기
    • shell script 상단에 #!/bin/bash 설정 - 해당 스크립트 파일을 bash 쉘로 실행시키겠다는 의미, 만약 다른 쉘로 실행시키고 싶다면 #!/bin/쉘명(ex. tcsh)로 작성하면 된다.
    • 원래 shell script에서 #은 주석을 의미하지만 #!/bin/bash의 #은 주석으로 처리되지 않는다.

     

    #!/bin/bash
    echo "Hello Linux Sehll Script"
    printf "Hello Linum Shell Script"   // 작동X
    printf "%s %s %s" Hello Shell Script

     

    4. shell script 파일 실행

    # 첫번째 방법
    ./파일명.sh

    # 두번째 방법
    sh ./파일명.sh

     

    [결과 출력] 
    Hello Linux Shell Script
    Hello Linux Shell Script

     

    5. 변수

    • 변수에는 따로 선언문이 없다.
    • '변수명=값'으로 사용하고, 사용시 공백이 없어야 한다.
    • 변수는 '$변수명' 또는 '${변수명}' 형태로 사용한다.
    • 모두 문자열로 처리된다.

     

    #!/bin/bash
    num=100 
    NUM=200    // 변수명은 대소문자 구분이 가능(num != NUM)
    str="linux"

    echo "num : $num"    // 문자열 안에서 변수 사용 가능
    echo "NUM : $NUM"
    echo "$num + $NUM = `expr $num + $NUM`"    // 변수를 숫자로 사용하고 싶으면 expr 명령 사용
    echo $((num + NUM))    // 변수에서 바로 수치 계산
    echo "str : ${str}"

    .
    .
    .

    [결과 출력]
    num : 100
    NUM : 200
    100 + 200 = 300
    300
    str : linux
    • 변수 출력

     

    #!/bin/bash
    str="HelloLinuxShellScript"

    echo ${#str}    // 변수 길이 출력
    echo ${str:3}    // 특정 위치부터 출력
    echo ${str:3:6}    // 특정 위치부터 길이만큼 출력

    .
    .
    .

    [결과 출력]
    21
    lloLinuxShellScript
    lloLin

     

    6. 따옴표

    #!/bin/bash
    value1="Hello"
    value2="Shell"
    value3="Script"

    echo "$value1 $value2 $value3"    // 특수기호 동작
    echo '$value1 $value2 $value3'    // 특수기호를 문자열로 출력

    .
    .
    .

    [결과 출력]
    Hello Shell Script
    $value1 $value2 $value3

     

    7. 실행 파라미터

    #!/bin/bash
    echo "$1 $2"    // 파라미터는 $1 - $9 형태로 받을 수 있다.
    echo "$*"    // 모든 파라미터 
    echo "$0"    // 실행한 파일명
    ./파일명.sh value1 value2    // shell script 실행할 때 파라미터 값 넘겨주기

    .
    .
    .

    [결과 출력]
    value1 value2
    value1 value2
    ./파일명.sh

     

    8. 배열

    #!/bin/bash
    arr=(1 2 3)    //  배열 선언

    # 배열 선언
    array[0]="val1"
    array[1]="val2"
    array[2]="val3"

    echo "arr : ${arr[@]}"    // @ - 모든 원소 의미
    echo "${arr[0]} , ${arr[1]}, ${arr[2]}"

    echo "----------------------------------------"

    echo "array : ${array[@]}"
    echo "${array[0]}, ${array[1]}, ${array[2]}"

    .
    .
    .

    [결과 출력]
    arr : 1 2 3
    1, 2, 3
    ----------------------------------------
    array : val1 val2 val3
    val1, val2, val3

     

    9. if문

    • if로 시작해 fi로 마침
    • then 이하는 참일 경우, else는 거짓일 경우
    • []에 조건을 입력할때는 양쪽에 공백 필요 

     

    # if문 조건
    # 첫번쨰 방법
    if [ 조건 ] 
    then 
        ···
    elif
        ···
    else
        ···
    fi

    # 두번째 방법
    if [ 조건 ]; then
         ···
    elif
        ···
    else
        ···
    fi

     

    # if문 조건식
    # 첫번째 방법
    if test 조건식; then 
        ···
    fi

    # 두번째 방법
    if [ 조건식 ]; then 
        ···
    fi

     

    10. case문

    • case로 시작해서 esac로 마침
    • break 대신에 ;; 사용
    • *은 기대값이 아닐 경우

     

    case 변수 in
    기대값1)
        ...
        ;;  
    기대값2)
        ...
        ;;
    기대값3)
        ...
        ;;
    *)   
        ...
    esac

     

    11. for문

    # 첫번째 방법
    for 변수 in 배열
    do
      ...
    done

    # 두번째 방법
    for 변수 in 배열; do
        ...
    done

     

    #!/bin/bash

    arr=(1 2 3 4)

    for index in ${arr[@]}; do
        printf "%d " $index
    done
    echo

    .
    .
    .

    [결과 출력]
    1 2 3 4

     

     

    12. while문

    # 첫번째 방법
    while [ 조건식 ]
    do
        ...
    done

    # 두번째 방법
    while [ 조건식 ]; do
        ...
    done

     

    참고1, 참고2

    'STUDY > 리눅스' 카테고리의 다른 글

    네임스페이스  (0) 2023.02.01
Designed by Tistory.