관리 메뉴


Kinesis´s Open Document

[Bash/Shell] 파일 존재여부를 확인하는 함수 본문

MEMO/기술 자료/Bash/Shell

[Bash/Shell] 파일 존재여부를 확인하는 함수

Kinesis 2024. 2. 1. 12:05

"스크립트 길이에 따른 관리 Tip"에서 작성한 대로 main 스크립트에서 하위 스크립트를 불러와 상호 연계를 하려면 실행 전에 미리 작성해 두었던 파일들이 온전히 존재하는지 검사할 필요가 있다.

 

스크립트 실행의 정확도, 즉 신뢰도를 올리기 위한 방법이기도 하고. 어느정도 무결성을 보장하고자 하는 노력의 일환이다.

 

그걸 위해 미리 테스트 해 두었던 파일 존재 여부 확인 함수는 아래와 같다.

#!/bin/bash
###############################################################################################
# File Exist Check
# ---------------------------------------------------------------------------------------------
# Call Example : check_files_exist_and_not_empty exit_code "file_path1" "file_path2" ...
# ---------------------------------------------------------------------------------------------
function check_files_exist_and_not_empty() {
  local exit_code="${1:-130}"; shift;
  for file_path in "$@"; do
    if [[ ! -s "$file_path" ]]; then
      echo "Error: File '$file_path' does not exist or is empty.";
      exit "$exit_code";
    fi;
  done
}

 

사용 방법은 Call Example 주석에도 작성되어 있으나 다음과 같다.

check_files_exist_and_not_empty 130 "./ScriptParts/func_chk_mutex.sh" \
                                    "./ScriptParts/func_chk_permissions.sh"

 

추가로 설명하자면 130 code 는 스크립트 실행이 중지되었음을 의미하는 코드이며 필요나 목적에 따라 다른 코드를 사용해도 무관하다. 필요하다면 아래 링크를 참조하면 좋다.

 

https://tldp.org/LDP/abs/html/exitcodes.html


Comments