DevOps 5일차 - bash shell

문한성·2023년 3월 13일
0

부트캠프

목록 보기
8/123
post-thumbnail

변수

https://80000coding.oopy.io/7c84ede6-2741-4491-8fa4-d6f216944c13
**(1) 변수 선언하기**

쉘스크립트에서도 변수를 사용할 수 있습니다.

변수명=값 으로 변수를 선언하고, 사용할때는 앞에 $를 붙여줍니다.

중괄호를 이용하는 방법도 있습니다. ${변수} 식으로 중괄호로 묶어서 사용합니다.

#!/bin/bash**h="hi"

b="bye"
echo "${h},${b}"
printf "%s,%s" $h,$b

**(2) 외부 변수 만들기**

export 는 외부변수로 선언을 위한 키워드입니다. 선언된 변수는 다른 프로그램에서도 사용 가능하죠.

그 변수를 다른 스크립트에서 사용할 수 있습니다.

text.txt 는 변수 선언하고 export를, text2.txt는 그 변수를 출력하는 쉘 스크립트입니다.

#text.txt

**#!/bin/bash**
export MY_Var="KS"

./text2.txt

#text2.txt

**#!/bin/bash**
echo ${MY_Var}

같은 폴더 안에 이 두 파일을 만들어줬다면, ./text.txt 만 불러줘도 KS 라는 값이 출력된다.

전역 변수로 MY_Var 을 만들어준 후 text2로 불러왔기 때문이다.

./text.txt
#KS

**(3) 매개변수 활용하기**

쉘에서 스크립트로 매개변수를 보내줄 수 있다.

./text.txt aaa bbb

이런 식으로 공백을 가지고 aaa 와 bbb 로 매개변수를 보낸다.

이러한 것들을 '위치 매개변수'라고 한다.

이들을 받아내기 위해서 스크립트

# text.txt

**#!/bin/bash**
echo "script name:${0}"
echo "매개변수 갯수 :${#}"
echo "전체 매개변수  값 : ${*}"
echo "전체 매개변수 값2 : ${@}"
echo "매개변수 1 : ${1}"
echo "매개변수 2 : ${2}"

${}안의 옵션

  • 0 : 현재 쉘 스크립트의 이름
  • : 위치 매개변수의 총 개수

    •  : 모든 위치 매개변수
  • @ : 큰 따옴표를 사용하였을 때를 제외하고는 $*와 동일한 의미
  • 1 ~10 : 사용가능한 위치 매개변수

위 스크립트를 쉘에서 실행

매개변수 갯수 :2

전체 매개변수 값 : aaa bbb

전체 매개변수 값2 : aaa bbb

매개변수1:aaa

매개변수2:bbb

반복문

for문으로 인한 반복

  • i : 변수 이름
  • do : 반복하면서 수행할 내용
  • done : 반복문 마무리

**for 반복문 사용 예제-리스트 원소 출력**

for i in 1 2 3 4 5
do
  echo "Looping ... number $i"
done

**for 반복문 사용 예제-배열 원소 출력**

array=(1 3 5 7 9)
for var in "${array[@]}"
do
  echo $var
done

**for 반복문 사용 예제 - 순차적으로 증가하면서 반복**

for var in {1..100}
do
  echo $var
done
  • ex) 1..100..5 : 1부터 5씩 증가
  • ex) 1..100..-5 : 100부터 5씩 감소

while문

while [ 조건문 ]
do
    # 반복해서 실행할 코드
done

기본 루프 : 1부터 5까지 출력

#!/bin/bash

counter=1

while [ $counter -le 5 ]
do
    echo $counter
    counter=$((counter+1))
done

조건문

f문은 리눅스 쉘 스크립트에서 사용되는 조건문입니다. if문은 주어진 조건이 참(True)인 경우에만 특정 작업을 수행합니다.

아래는 if문의 기본 구문입니다:

if [ 조건식 ]
then
  # 조건식이 참인 경우 실행할 코드
fi

위에서 [ 조건식 ]은 참(True) 또는 거짓(False)이 되는 조건을 지정합니다. 조건식은 대괄호([]) 안에 위치하며, 대괄호 안에는 조건식을 나타내는 여러 가지 옵션들이 있습니다.

예를 들어, 파일이 존재하는 경우에만 특정 코드를 실행하고자 한다면, 다음과 같이 if문을 사용할 수 있습니다:

if [ -e 파일이름 ]
then
  # 파일이 존재하는 경우 실행할 코드
fi

리눅스 쉘 스크립트에서는 if문과 함께 elif와 else문을 사용하여 조건식이 거짓(False)인 경우에 대한 처리를 지정할 수 있습니다.

다음과 같이 if/elif문을 사용할 수 있습니다:

if [ -d 디렉토리명 ]
then
  # 디렉토리인 경우 실행할 코드
elif [ -f 파일명 ]
then
  # 파일인 경우 실행할 코드
else
  # 디렉토리도 아니고 파일도 아닌 경우 실행할 코드
fi
profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글