Shell script

yoon__0_0·2024년 5월 14일
0

이어드림 수업

목록 보기
27/103

shell script 문법

셔뱅(shebang)

#!bin/bash
  • shell script 작성시에 가장 첫 줄에 사용하는 것
  • bash shell을 사용하겠다는 의미로 사용함
  • #과 !를 함께 사용하는 경우 #는 셔뱅(shebang)이라고 부름
  • 셔뱅은 바로 다음에 오는 문구를 실행한다는 뜻으로 bin/bash를 실행함을 의미함

shell script의 권한 변경

chmod 777 {shell script}
  • sehll script를 작성하고 나서 꼭 권한을 변경해줘야 실행할 수 있음.

shell script의 변수

a=7
echo "a is $a"
  • shell script 속에서 변수를 사용할 시에는 $를 사용해주면 됨
  • 변수값을 정의할때 공백값이 존재하면 안됨 (a = 7 은 탈락)
  • 배열 변수를 사용할 때에는 ${변수명[인덱스번호]}로 사용하기
    • 배열은 0부터 시작함
    • 배열명[@]은 배열의 모든 원소를 의미함
    • 배열 초기화 unset 배열변수
    • 특정 요소 삭제 unset 배열변수[인덱스]

shell script의 비교연산 및 조건문


#!/bin/bash

a=7
echo "a is $a"

if [ "$a" -gt 5 ]
then
        echo "a is greater than 5"
elif [ "$a" -gt 3 ]
then 
        echo "a is greater than 3"
else
        echo "etc"
fi
  • shell script는 띄어쓰기에 예민함
  • 따라서, 조건문을 사용할 때 꼭 모두 띄어줘야함

shell script의 반복문

#!/bin/bash

a=("abc" "def" "ghi")

for element in ${a[@]}
do
	echo ${element}
done

shell scipt에서 python 스크립트 실행

  • pytest02.py 파일을 백그라운드로 실행하는 shell script

  • bashtest.sh 파일 작성

# bash 실행
#!/bin/bash

# 환경설정
source /home/ubuntu/.bashrc
source /home/ubuntu/.profile

# 가상환경 활성화
pyenv activate py3_11_9

# 폴더로 움직이기
cd /home/ubuntu/work

# python 파일 실행 (아래에서 백그라운드 실행되기 때문에 실행 안해도되긴함)
# python /home/ubuntu/work/pytest02.py

# 백그라운드 실행 및 리다이렉션
nohup python /home/ubuntu/work/pytest02.py > /home/ubuntu/work/print_txt.txt 2>&1 &

# 가상환경 풀기
pyenv deactivate
  • 권한을 777로 변경해주기
chmod 777 bashtest.sh
profile
신윤재입니다

0개의 댓글