OS/Ubuntu

쉘스크립트 공부(1) - 기초

makeitworth 2022. 10. 19. 07:14

벌써 작년이 되어 버린 KDT- AI dev 코스의 파이널 프로젝트...

그때는 남이 짠 모델 코드를 살짝 변형만 한 수준이어서 학습을 시킬 때 CLI에서 .sh 파일을 실행시키는게 뭔 의미인지 몰랐다. 그냥 arguement로 모델 학습의 하이퍼 파라미터를 바꿔준다는 것만 겨우 이해한 상태.

 

그 이후에는 내가 CLI에서 어떤 작업들을 했는지 나중에 확인하는 것이 확인하고 반복 작업하기가 어려워 되도록 주피터 노트북에서 파이썬으로 실행가능하게 작업을 하다가, 방통대에서 마침 UNIX 강의도 듣겠다 쉘 스크립트를 간단히 익혀 업무에 적용해보게 되었다.

 

쉘스크립트란?

CLI에서 실행하는 명령어들을 스크립트 파일로 저장해서 나열하여 실행할 수 있게 만든 것

 

만들어서 사용하는 법

1. CLI에서 vi [파일이름].sh 명령어를 사용하여 [파일이름].sh 파일을 생성하고 스크립트를 작성한 다음 저장한다.

vi [파일이름].sh

2. 스크립트 파일의 실행 권한을 열어줘야 한다.

chmod 755 [파일이름].sh

또는

chmod +x [파일이름].sh

3. 스크립트 파일이 있는 경로에서 

./[파일이름].sh

를 통해 실행한다. 

아규먼트를 받는다면 이때 같이 써주면 된다.

 

예제

1. 가장 간단한 hello world 출력 예제

#!/bin/bash

echo "Hello, World!"

(쉘 스크립트 파일의 시작은 #!/bin/bash으로 적어 bash로 실행함을 명시)

 

2. 입력은 read로 출력은 echo로

#!/bin/bash

read NAME
echo "Hello, $NAME!"

 

3. 앞에서 만든 변수를 다시 쓸 때는 앞에 $ 표시 붙여줘야함 

#!/bin/bash

NAME="RollingSnowball"
echo $NAME

(변수 할당 시 띄어쓰기 안하기)

 

4. arguement는 순서대로 $1, $2...가 되고 $#는 아규먼트의 갯수

#!/bin/bash


echo "첫 번째 파라미터: $1"

echo "첫 번째 파라미터: $2"

echo "파라미터 개수 : $#"

5. for loop

#!/bin/bash

for i in {1..10};
 do echo $i;
 done

 

6. if 문

#!/bin/bash

echo "Pick a number from 1 to 10!"
read num
if [ $num == 3 ];
    then echo "Congratulation! You picked the right number";
    else echo "Sorry, You missed! Maybe next time.";
fi;

(조건절 띄어쓰기 유의하기)

 

 

참고 : 

Bash documentation

https://engineer-mole.tistory.com/m/200