99클럽 코테 스터디 3일차 TIL + Shell 기초

황서희·2024년 7월 24일
0
post-thumbnail

내용 정리

개요

#! /bin/bash 를 가장 맨 처음에 넣어 /bin/bash 쉘을 사용한다는 것을 알려준다.

변수를 선언할 때는 = 기호를 사용하며, 변수 이름과 = 사이에 공백이 없어야 한다.

변수를 사용할 때는 $ 기호를 앞에 붙여야 한다.

환경 변수를 설정하면 시스템 전체에서 변수를 사용할 수 있다. export 명령어를 사용해서 설정한다. env 명령어를 사용하면 환경 변수의 목록을 볼 수 있다.

문자열은 작은따옴표 혹은 큰따옴표를 이용해서 표현한다.

expr 명령어를 사용하거나 (( )) 구문을 사용하여 간단한 산술 연산을 수행할 수 있다.

배열은 이와 같이 설정한다. my_array=(array1, array2, array3 특정 요소로 접근하기 위해서는 ${array[index]} 구문을 사용한다.

비교 표현식

  • -gt : greater. 크다
  • -ge: greater or equal. 크거나 같다
  • -eq: equal. 같다
  • -ne: not equal. 같지 않다
  • -le: little or equal. 작거나 같다
  • -lt: little. 같다

조건문

if문

if [ $a -gt $b ]; then
    echo "$a is greater than $b"
elif [ $a -eq $b ]; then
    echo "$a is equal to $b"
else
    echo "$a is less than $b"
fi

case문

case $input in
    start)
        echo "Starting"
        ;;
    stop)
        echo "Stopping"
        ;;
    *)
        echo "Unknown command"
        ;;
esac

반복문

for문

for i in {1..5}; do
    echo "Welcome $i times"
done

while문 - executes the commands inside it as long as the condition is true

while [ $i -le 5 ]; do
    echo "Welcome $i times"
    i=$((i + 1))
done

until문 - executing the commands inside it until the condition becomes true

until [ $i -gt 5 ]; do
    echo "Welcome $i times"
    i=$((i + 1))
done

함수

쉘스크립트에서 반복되는 작업을 모듈화하고 코드의 재사용성을 높임

함수 정의

function_name() {
    # 함수의 내용
}

or

function function_name {
    # 함수의 내용
}

함수 호출 - 함수를 호출하려면 함수 이름을 사용하고, 필요한 경우 인자를 전달

function_name arg1 arg2

위치 매개변수와 특수 변수

함수 내에서, 인자는 위치 매개변수 ($1, $2, ...)를 통해 접근할 수 있다. $0은 스크립트의 이름을 나타내며, $#는 전달된 인자의 수를 나타낸다.

greet() {
    echo "Hello, $1!"
}

greet "World"

[root@localhost ~]# ./greet.sh
Hello, World!

greet 함수는 하나의 인자를 받아 인사말을 출력한다. $1은 함수에 전달된 첫 번째 인자를 나타낸다.

greet() {
        echo "Hello, $1! Nice to meet you, $3, $2!"
}

greet "World" "Min" "Sin"

[root@localhost ~]# ./greet.sh
Hello, World! Nice to meet you, Sin, Min!

쓸만한 명령어들 정리

  • 삭제할 때
    • ls *.파일명 으로 실행하고 rm !$로 ls로 불러온 다른 파일들 삭제하기
  • Crtl+R로 증분검색 해서 편하게 불러오기
  • 명령어에서 오타난 부분 바꿀때는 그냥 ^오타^수정함으로 하면됨
[root@localhost ~]# lsa
-bash: lsa: command not found
[root@localhost ~]# ^lsa^ls
ls
BookNetwork_GKE  go                                            infra          minikube-linux-amd64
anaconda-ks.cfg  google-cloud-cli-461.0.0-linux-x86_64.tar.gz  kubectl        practice
cri-dockerd      google-cloud-sdk                              linux-amd64    shell_study
db.pem           helm-v3.11.1-linux-amd64.tar.gz               liveness.yaml
  • 두 디렉터리를 오며가며 반복할 때는 cd - 를 사용

회고

피곤하당

profile
다 아는 건 아니어도 바라는 대로

0개의 댓글