[Bash] 쉘 스크립트 정리 1

김동완 (Joseph Kim)·2023년 5월 31일
0

shell

목록 보기
1/2
post-thumbnail

포스팅 이유

쉘 스크립트 개발을 하며 자주 사용하는 부분을 정리하여 추후 쉘 스크립트 제작시 참고하기 위함.


1. 스크립트 시작

#!/bin/bash
...

#!/bin/bash의 의미는 bash 쉘로 시작하겠다는 의미입니다.

해당 부분에 대한 작성 없이 정상 동작 됐다면 bash 쉘이 default 쉘로 설정되어 있어서 입니다.


2. 글자 색상 세팅

#!/bin/bash

#COLOR SETTING
RED="\033[1;31m"
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
BLUE="\033[1;34m"
MAGENTA="\033[1;35m"
CYAN="\033[1;36m"

RESET="\033[0m"

#COLOR TEST
echo -e "$RED RED $RESET"
echo -e "$GREEN GREEN $RESET"
echo -e "$YELLOW YELLOW $RESET"
echo -e "$BLUE BLUE $RESET"
echo -e "$MAGENTA MAGENTA $RESET"
echo -e "$CYAN CYAN $RESET"

color setting을 하여 echo를 통해 출력할 때 글자색을 바꿀 수 있습니다.
바뀐 글자색 옵션을 적용해 출력하려면 echo에 -e 옵션을 붙여서 실행해야 합니다.
개인적으로 Bright한 색상을 더 좋아해서 위 색깔은 Bright한 색깔에 대한 설정입니다.


3. 현재 날짜를 값으로 사용하기

#!/bin/bash

#mkdir test
mkdir $(date +'%Y-%m-%d')-date-test

스크립트 실행 날짜를 값으로 사용하여 디렉토리를 만드는 예시입니다.
이외 다른 작업에서도 $(date + '%Y-%m-%d') 를 활용하여 다양한 작업을 할 수 있습니다.


4. 변수 사용하기

4.1 변수 선언

#!/bin/bash

H="hello"
w="World"
echo "${H}" "${w}"

변수명=값 의 형태로 변수를 선언하여 사용합니다.
사용할때는 $변수 혹은 ${변수} 형태로 사용합니다.

4.2 매개변수 사용

print.sh

#!/bin/bash

echo "script name:${0}"
echo "매개변수 갯수 :${#}"
echo "전체 매개변수  값 : ${*}"
echo "전체 매개변수 값2 : ${@}"
echo "매개변수 1 : ${1}"
echo "매개변수 2 : ${2}"
sh print.sh hello world

hello와 world라는 두개의 매개변수(위치매개변수)를 가지고 print.sh이 실행됩니다.


5. 값 입력 받기

input.sh

#!/bin/bash

echo -n "Enter value : "
read -r VALUE

echo "your value is ${VALUE}"

read를 통해 입력 값을 받아서 사용할 수 있습니다.

이때 echo -n 옵션을 사용하면 Enter value : 옆에 커서가 위치하고, -n 옵션을 빼면 다음줄에 커서가 위치합니다.


6. if 문

6.1 기본 if문 (비교)

if.sh

#!/bin/bash

echo -n "Enter value A : "
read -r A

echo -n "Enter value B : "
read -r B

if [[ "${A}" == "apple" ]]; then
  echo "Value A is apple"
elif [[ "${A}" == "${B}" ]]; then
  echo "Value A and B is same"
else
  echo "Value A is not apple and A, B is not same"
fi

if문 사용의 간단한 예시입니다.
if와 elif else를 사용할 수 있고 if문은 fi로 끝내야 합니다.
그리고 if문을 사용할때는 꼭 [ ]안의 공백을 확인해서 사용해야합니다.


6.2 -z 옵션

if-z.sh

#!/bin/bash

echo -n "Enter value A : "
read -r A

if [ -z "$A" ]; then
  echo "A is Null"
else 
  echo "A is not Null"
fi

if [ -z "{확인하려는값}" ]; then 구문을 활용하여 확인하려는값이 null 값인지 확인할 수 있습니다.


6.3 if문 사용시 비교옵션

  • 문자열 비교

    번호옵션사용법설명
    1없음if [ 문자 ]null이 아니면 참.
    2= or ==if [ 문자 == 문자 ]두 문자열이 같다면 참.
    3!=if [ 문자 != 문자 ]두 문자열이 같지 않으면 참.
    4-nif [ -n 문자 ]문자열이 null이 아니면 참.
    5-zif [ -z 문자 ]문자열이 null이면 참.
  • 산술 비교

    번호옵션연산자사용법설명
    1-eq=if [ 값1 -eq 값2 ]두 값이 같으면 참.
    2-ne!=if [ 값1 -ne 값2 ]두 값이 같지 않으면 참.
    3-gt>if [ 값1 -gt 값2 ]값1이 값2보다 크면 참.
    4-ge>=if [ 값1 -ge 값2 ]값1이 값2보다 크거나 같으면 참.
    5-lt<if [ 값1 -lt 값2 ]값1이 값2보다 작으면 참.
    6-le<=if [ 값1 -le 값2 ]값1이 값2보다 작거나 같으면 참.
    7-aandif [ 조건1 -a 조건2 ]조건1과 조건2의 결과가 모두 참이어야 참.
    8-oorif [조건1 -o 조건2 ]조건1과 조건2의 결과 중 하나만 참이면 참.
profile
Kubernetes / DevOps / Git / Network / AWS / Terraform / Opensource / Java / Springboot

0개의 댓글