#! /bin/bash 를 가장 맨 처음에 넣어 /bin/bash 쉘을 사용한다는 것을 알려준다.
변수를 선언할 때는 =
기호를 사용하며, 변수 이름과 =
사이에 공백이 없어야 한다.
변수를 사용할 때는 $
기호를 앞에 붙여야 한다.
환경 변수를 설정하면 시스템 전체에서 변수를 사용할 수 있다. export
명령어를 사용해서 설정한다. env
명령어를 사용하면 환경 변수의 목록을 볼 수 있다.
문자열은 작은따옴표 혹은 큰따옴표를 이용해서 표현한다.
expr
명령어를 사용하거나 (( ))
구문을 사용하여 간단한 산술 연산을 수행할 수 있다.
배열은 이와 같이 설정한다. my_array=(array1, array2, array3
특정 요소로 접근하기 위해서는 ${array[index]}
구문을 사용한다.
if문
if [ $a -gt $b ]; then
echo "$a is greater than $b"
elif [ $a -eq $b ]; then
echo "$a is equal to $b"
else
echo "$a is less than $b"
fi
case문
case $input in
start)
echo "Starting"
;;
stop)
echo "Stopping"
;;
*)
echo "Unknown command"
;;
esac
for문
for i in {1..5}; do
echo "Welcome $i times"
done
while문 - executes the commands inside it as long as the condition is true
while [ $i -le 5 ]; do
echo "Welcome $i times"
i=$((i + 1))
done
until문 - executing the commands inside it until the condition becomes true
until [ $i -gt 5 ]; do
echo "Welcome $i times"
i=$((i + 1))
done
쉘스크립트에서 반복되는 작업을 모듈화하고 코드의 재사용성을 높임
함수 정의
function_name() {
# 함수의 내용
}
or
function function_name {
# 함수의 내용
}
함수 호출 - 함수를 호출하려면 함수 이름을 사용하고, 필요한 경우 인자를 전달
function_name arg1 arg2
함수 내에서, 인자는 위치 매개변수 ($1
, $2
, ...)를 통해 접근할 수 있다. $0
은 스크립트의 이름을 나타내며, $#
는 전달된 인자의 수를 나타낸다.
greet() {
echo "Hello, $1!"
}
greet "World"
[root@localhost ~]# ./greet.sh
Hello, World!
greet
함수는 하나의 인자를 받아 인사말을 출력한다. $1
은 함수에 전달된 첫 번째 인자를 나타낸다.
greet() {
echo "Hello, $1! Nice to meet you, $3, $2!"
}
greet "World" "Min" "Sin"
[root@localhost ~]# ./greet.sh
Hello, World! Nice to meet you, Sin, Min!
ls *.파일명
으로 실행하고 rm !$
로 ls로 불러온 다른 파일들 삭제하기Crtl+R
로 증분검색 해서 편하게 불러오기^오타^수정함
으로 하면됨[root@localhost ~]# lsa
-bash: lsa: command not found
[root@localhost ~]# ^lsa^ls
ls
BookNetwork_GKE go infra minikube-linux-amd64
anaconda-ks.cfg google-cloud-cli-461.0.0-linux-x86_64.tar.gz kubectl practice
cri-dockerd google-cloud-sdk linux-amd64 shell_study
db.pem helm-v3.11.1-linux-amd64.tar.gz liveness.yaml
cd -
를 사용피곤하당