IT스러운 공간

[리눅스] 쉘스크립트 본문

기타/리눅스

[리눅스] 쉘스크립트

nanaing 2024. 1. 26. 00:00
728x90

쉘 스크립트란?

: 명령어 라인상에서 실행하는 여러 개의 리눅스 명령어를 프로그래밍 구조로 이용해 실행하는 프로그램

: 즉, 프로그래밍 언어

 

특징

: 컴파일 과정을 거치지 않고, 명령어 해석기를 통해 결과 값을 구하는 인터프리터언어

: vi와 같은 편집기를 이용하여 생성, 실행권한을 할당하여 실행

 

특수 매개 변수

$# : 위치 매개 변수에 할당된 변수의 개수

$* : 위치 매개 변수에 할당된 모든 변수의 값

$@ : 위치 매개 변수에 할당된 모든 변수의 값?

$0 : 현재 실행되고 있는 프로세스의 이름

$? : 직전에 종료된 프로세스의 종료 코드값 0 정상종료, 1 에러, 2 아규먼트 오류

$! : 가장 최근에 백그라운드 작업으로 실행된 프로세스의 PID값

$$ :  현재 실행되고 있는 프로세스의 PID값

 

조건문 사용하기

문법 

if [ 조건식 ]

then

[ 조건이 참인 경우 실행할 명령어들 ]

elif [ 조건식 ]

else

[ 조건이 거짓인 경우 실행할 명령어들 ]

fi

 

정수 연산

 

정수 연산  -eq  같은경우 (=)
 -ge  같거나 큰 경우 (>=) 
 -gt  큰 경우(>)
 -le  같거나 작은 경우(<=)
 -lt  작은 경우(<)
 -ne  같지 않은 경우
 문자열 연산  string  널이 아닌 경우 
 -n string  널이 아닌 경우
 -z string  널인 경우
 string1 == string2  string1과 string2와 같은 경우(=)
 string1 != string2  string1과 string2가 같지 않은 경우
 파일 연산  -r  프로세스에 의해 읽기 가능한 파일
 -w  프로세스에 의해 기록 가능한 파일
 -x  프로세스에 의해 실행 가능한 파일
 -e  파일의 존재여부
 -f  보통 파일
 -d  디렉터리
 -c  문자 특수 파일
 -b  블록 특수 파일
 -p  파이프 파일
 -s  크기가 0이 아닌 파일
 -L  심볼릭 링크 파일
 부울 연산  !expr  expr이 참인 경우 거짓, 거짓인 경우에 참 
 expr1 -a expr2  expr1과 expr2가 둘다 참인 경우에만 참
 expr1 -o expr2  expr1 또는 expr2 둘 중 어느 하나가 참인 경우에 참

 

반복문

1. for문 : 나열한 변수값의 개수만큼 반복

for 변수명 in 변수값1 변수값2 변수값3

do

[실행할 명령어들]

done

2. while문 : 조건이 참인 동안 반복

while [조건식]

do

[실행할 명령어들]

done

3. until문 : 조건이 거짓인 동안 반복

until [조건식]

do

[실행할 명령어들]

done

 

 

※ 실행 권한이 없을 때 source 명령어 사용

※ read : 콘솔을 통해서 변수에 저장할 값을 입력받는 명령어

 

728x90