shell script 기초

roon2020·2021년 10월 27일
0

Linux

목록 보기
2/2

유용할 것 같은 bash shell 학습 자료

  • shell script란
    unix,mac 등에서 사용하는 명령어 + 프로그래밍 가능한 스크립트 언어

  • bash shell
    리눅스 표준 shell

  • shell scirpt는 언제 쓰나?
    시스템 관련 작업에 사용!

기초 문법

셸 스크립트 파일 만들기

확장자 : sh
스크립트 처음에 #!/bin/bash로 셸 스크립트임을 알려주기
실행 : chmod +x로 실행 권한 주고 ./파일명 또는 sh 파일명

변수 사용

# 변수에 타입 없음.
# 지역,전역 등 scope 있음.
# 함수 있음.
name="leemr"	# 띄어 쓰기 주의
echo "my name is $name" # 변수 값을 사용할 때는 $기호를 앞에 붙임

함수

function hello(){		# 함수 선언시 function 키워드 사용
	echo "my name is $1"	# 위치 매개 변수 $1,$2,..
	echo "my hobby is $2"
}
hello "leemr" "skate"	# 인자는 띄어쓰기로 구분

scope

# (전역 변수, 지역 변수)
# 보통 프로그래밍과 같음.
name = "leemr"
function hello(){
	local name="park"
	echo "my name is $name"		# park가 출력됨
}

hello

반복문

# 1부터 10까지 출력하기
# for 변수명 in {초기값..최종값..증가값} / while도 있음.
for num in {1..10}	#python like 
do 
	echo $num;
done

조건문

# if then else fi는 필수. elif [ 조건식 ] 은 옵션
A=1
B=2

if [ $A = $B ] 	#대괄호와 조건식 사이에 무조건 띄어쓰기 해야 함..
then echo "A = B"
else echo "A != B"
fi

사칙 연산 (let)

# let이라는 built in 명령을 사용해야 수식 계산이 쉬움
A=3
B=5
let sum=A+B
let mul=A*B
let div=A/B
let rem=A%B

echo $sum $mul $div $rem

# let을 안 쓰면 아래처럼 해야 함. 괄호 안 치면 동작도 안 함.
sum=$((A + B))

환경 변수

# 환경 변수 : 시스템에서 사용하고 있는 변수
# HOME,PATH,PWD,USER,UID 등이 있다. (대문자로 사용해야 함)
echo $HOME
echo $PATH

연산자

  • 문자열 연산자
    '-z' 연산자 : 문자열 길이가 0이면 참
    '-n' 연산자 : 문자열 길이가 0이 아니면 참

  • 비교,논리 연산자
    보통 프로그래밍 언어들과 비슷.
    비교 :+ eq,gt,lt 등 있음.
    논리 : -a(&&), -o(||) 등 있음.

  • 디렉터리 연산자
    -d : 변수 타입이 디렉터리이면 참
    -e : 변수 타입이 디렉터리이거나 파일이면 참

  • 파일 연산자
    파일 속성(유형,권한)을 검사하는 연산자
    -f, -L, -r,w,x, -O, -G 등 있음.

profile
keep in positive mindset. I've got this.

0개의 댓글