728x90
쉘 스크립트 기초 문법
shell
⸰ 사용자와 커널 사이에서 사용자로부터 명령을 받아 해석하고 프로그램 실행
파일 생성
$ vi 스크립트명.sh
실행권한을 부여, 실행
$ chmod 755 example.sh
$ ./example.sh
Shebang
#!/usr/bin/bash
⸰ 스크립트 첫 째 줄에 쉘 스크립트가 실행될 때, 어떤 쉘로 실행할 지 정의하는 곳
-sh
: 초기의 유닉스 쉘
-ksh
: 콘 쉘, sh 확장
-csh
: c언어 기반
-bash
: 리눅스 표준 쉘, sh와 대부분 호환
변수 선언
⸰ 대/소문자 구별함
⸰ 숫자로 시작 X (포함 가능)
⸰ 모든 값 문자열로 저장
⸰ 변수 사용 시 $ 사용
⸰ 변수 초기화 시 $ 사용 X
⸰ = 문자 앞뒤로 공백 없어야 함
√. 문자열을 붙여서 사용하려면, ${ } 사용
#!/usr/bin/bash
name="Ye"
pass=123123 # 문자열로 저장
echo $name
echo "my name is ms.${name}"
printf "%s" $pass
전역 변수, 지역 변수
⸰ 기본적으로 전역 변수
⸰ 함수 안에서 지역 변수 사용 가능 > local 사용
√. local을 빼면 전역 변수로 덮어 씌워짐
string="hello world"
function string_test() {
local string="hello local @@"
echo ${string}
}
string_test # > hello local @@
echo ${string} # > hello world
매개 변수
$0 |
실행된 쉘 스크립트명 |
$1 |
첫 번째 인자 |
$2 |
두 번째 인자 |
... | ... |
$* |
모든 인자 출력 |
$@ |
인자의 개수 출력 |
$! |
마지막으로 실행한 백그라운드 PID (프로세스 ID) |
$$ |
현재 쉘 스크립트의 PID |
$? |
바로 직전 실행한 명령어의 종료값 (0 or 1) |
#!/bin/bash
echo "\$0 : $0"
echo "\$1 : $1"
echo "\$2 : $2"
echo "\$* : $*"
echo "\$# : $#"
echo "\$\$ : $$"
# 입력예제 : ./example.sh hello 1
$0 : example.sh
$1 : hello
$2 : 1
$* : hello 1
$# : 2
$$ : 731 #프로세스ID
비교 연산자
-eq |
equal (같다) |
--ne |
not equal (같지 않다) |
-lt |
less than (작다) |
-le |
less or equal (작거나 같다) |
-gt |
greater than (크다) |
-ge |
greater or equal (크거나 같다) |
-n |
null 이 아니면 true |
-z |
null 이면 true |
√.이중 소괄호 (( )) 를 사용하면, 문자 대신 기호로 표현 가능 (소괄호 안 따옴표('') 불가능)
if [ ${a} -eq ${b} ]; then
echo "a와 b는 같다."
fi
if (( ${a} <= ${b} )); then
echo "a는 b보다 작거나 같다."
fi
728x90
'💠개발 도구 및 환경 > 시스템 관리' 카테고리의 다른 글
[가상 머신] 웹훅 가져오고, top/free 명령어로 데이터 추출하여, 쉘 스크립트 작성하기 (2) (1) | 2024.09.04 |
---|---|
[가상 머신] 리눅스 운영체제 설치하고, 가상 환경을 설정하기 (1) (0) | 2024.08.28 |
[가상 머신] 가상화 - 에뮬레이터 vs 가상 머신 vs 컨테이너 (0) | 2024.08.28 |
[ANSI Escape Code] ANSI Escape Code로 터미널 예쁘게 출력하기 (0) | 2024.08.26 |
[리눅스] 리눅스 명령어에 대해 알아보자 (2) | 2024.07.16 |