반응형
Shell Script
- 변수 저장, 반복문, 제어문 등을 가지고 스크립트 작성이 가능
- 하나의 명령어처럼 실행될 수 있는 실행 가능한 프로그램
작성방법
- Shell Script 시작 부분
- 스크립트를 수행할 Shell 지정
- #!/bin/bash (#으로 시작해도 주석으로 인식하지 않음)
- Default로 Bron Shell 사용
변수
- 변수명=변수값
- 호출 시 $ 사용
변수 | 의미 |
${변수명} | 변수명 뒤에 추가 문자를 붙일 때 사용 |
${#변수명} | 변수의 문자 수 |
${변수명:-string} | 변수가 정의되고 NOT NULL이면 변수값 출력, 그렇지 않으면 string 출력 |
${변수명:+string} | 변수가 정의되고 NOT NULL 이면 string 출력, 그렇지 않으면 출력안함 |
${변수명:=string} | 변수가 정의되고 NOT NULL 이면 변수값 출력, 그렇지 않으면 string을 출력하고 변수에 string을 넣음 |
- 위치 변수
변수 | 의미 |
$0 | shell script 이름 |
$1, $2, $3, ... | 첫 번째, 두 번째, 세 번째 Argument 출력 |
$* | "arg1 arg2 arg3 ..." (하나의 문자열로 전체 Args 출력) |
$@ | "arg1" "arg2" "arg3" (각각 다른 문자열로 전체 Args 출력) |
$# | Args 갯수 |
$? | 마지막 수행된 명령어의 return 값 |
$$ | 현재 shell script 를 수행하고 있는 shell PID |
$! | 현재 shell에서 수행한 마지막 Background의 PID |
$_ | 마지막 수행된 명령어의 마지막 Argument |
- 명령어 그룹
Grouping 방법 | 의미 |
( 명령어 Script ) | 다른 Script를 호출한 것 처럼 SubShell 환경으로 수행 |
{ 명령어 Script ; } | 현재 Shell에서 수행되며 마지막에 세미콜론이 필요함 |
- 조건문
- [ ] 괄호 사이에 띄어쓰기 필수
if [ 조건문1 ];
then
[ 조건문1 ]이 True 일 때 명령
elif [ 조건문2 ];
then
[ 조건문2 ]이 True 일 때 명령
else
모든 조건에 맞지 않을 때 명령
fi
- case문
case $변수 in
값1) 명령
;;
값2) 명령
;;
*)
위 조건을 모두 만족하지 못했을 때 명령
;;
ease
- while문
# 조건문이 참이면 무한 반복
while [ 조건문 ]
do
명령
done
# 변수 TEXT에서 문자열을 하나씩 읽어들여 String 변수에 넣고 반복
while read String
do
명령
done < $TEXT
# 위의 while문과 동일한 for 구문
for String in $TEXT
do
명령
done
- Function : 명령어 Set을 지정하여 사용
function test
{
명령
}
test ()
{
명령
}
# 호출 방식
# test param
반응형
'CS' 카테고리의 다른 글
리눅스 OS 기본 이론 (0) | 2024.01.12 |
---|---|
네트워크 구성 (0) | 2024.01.11 |
네트워크 기본 (0) | 2024.01.09 |
OS - Virtual Memory (0) | 2023.11.06 |
OS - Memory Management2 (0) | 2023.11.01 |