본문 바로가기
Linux

Linux(함수)_2024-08-09

by 앵보몬 2024. 8. 9.
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

알아두기일반적인 프로그래밍 언어는 '사용자 정의 함수'와 '내장 함수'가 있습니다. 우리가 이곳에서 다루는 함수는 '사용자 정의 함수'입니다. 그렇다면 셸 스크립트에서 '내장 함수'는 무엇일까요? 리눅스 셸이 제공하는 방대한 양의 명령어들이 바로 '내장 함수'의 역할을 합니다. 따라서 셸 스크립트를 효과적으로 작성하기 위해서는 리눅스 명령어에 대한 이해가 선행되어야 합니다.

https://wikidocs.net/230121

 

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