728x90
반응형
기본형식
- 함수는 다음과 같은 형식으로 작성합니다.
함수명()
{
수행문
}
- 함수 안에는 지금까지 살펴본 if, case, for, while 문 등이 올 수 있습니다.
- 셸 스크립트 내에서 함수 호출은 '함수명 인자' 를 작성해 주기만 하면 됩니다.
사용 예
- 디렉토리(또는 파일) 크기를 체크하는 셸 스크립트 check_size.sh 스크립트입니다.
#!/bin/bash
# 파일 또는 디렉토리의 디스크 사용량을 확인하는 함수
disk_usage() {
local file_path=$1 # 첫 번째 파라미터를 file_path 변수에 저장
if [ -e "$file_path" ]; then # 파일 또는 디렉토리가 존재하는지 확인
echo "[$file_path]의 디스크 사용량:"
du -sh "$file_path"
else
echo "오류: [$file_path]가 존재하지 않습니다."
fi
}
# 스크립트에 전달된 첫 번째 인자를 사용하여 함수 호출
disk_usage "$1"
- 셸 스크립트를 실행할 때 디렉토리(또는 파일경로)를 인자로 전달합니다.
check_size.sh /var/log
알아두기일반적인 프로그래밍 언어는 '사용자 정의 함수'와 '내장 함수'가 있습니다. 우리가 이곳에서 다루는 함수는 '사용자 정의 함수'입니다. 그렇다면 셸 스크립트에서 '내장 함수'는 무엇일까요? 리눅스 셸이 제공하는 방대한 양의 명령어들이 바로 '내장 함수'의 역할을 합니다. 따라서 셸 스크립트를 효과적으로 작성하기 위해서는 리눅스 명령어에 대한 이해가 선행되어야 합니다.
for문 예제
#!/bin/bash
homesize ()
{
date
du -h ~ | tail -n 1
}
homesize
#!/bin/bash
greet() {
echo "hello, world!"
}
greet
#!/bin/bash
add() {
sum=$(( $1+$2 ))
echo "두수의 합계: $sum"
}
add 3 5
#!/bin/bash
function change_ext() {
for file in "$1"/*.$2
do
#"${file%.$2}"는 파일 이름에서 확장자를 제거한 부분을 추출합니다.
mv "$file" "${file%.$2}.$3"
done
}
change_ext . "txt" "pdf"
echo "파일이 성공적으로 변경되었습니다."
728x90
반응형
'Linux' 카테고리의 다른 글
Linux(쉘 스크립트)_2024-08-12 (0) | 2024.08.12 |
---|---|
Linux(마운트)_2024-08-09 (0) | 2024.08.09 |
Linux(반복문)_2024-08-09 (0) | 2024.08.09 |
Linux(필수명령어)_2024-08-07 (0) | 2024.08.07 |
Linux(필수명령어)_2024-08-06 (0) | 2024.08.06 |