Linuxpia/리눅스 사용 팁

Bash 스크립트 실습

Linuxpia4U 2024. 6. 8. 05:21
반응형

Bash 스크립트 실습

파일들을 처리하면서 디버깅 기능을 사용하는 스크립트를 만들어보겠습니다. 예를 들어, 특정 디렉터리 내의 텍스트 파일을 다른 디렉터리로 복사하는 스크립트를 작성합니다.

실습 예제: 파일 백업 스크립트

스크립트 작성

아래와 같은 내용을 포함하는 Bash 스크립트를 작성합니다. 파일 이름은 backup.sh로 저장합니다.

#!/bin/bash

# 디렉터리 설정
source_dir="/home/easyfly/GIT/HtmlCSS"
backup_dir="/home/easyfly/BACKUP"

# 디버깅 활성화
set -x

# 백업 디렉터리 존재 여부 확인 및 생성
if [ ! -d "$backup_dir" ]; then
    mkdir -p "$backup_dir"
    echo "Backup directory created."
fi

# 디렉터리 내 파일 복사
for file in "$source_dir"/*.txt; do
    cp "$file" "$backup_dir"
    echo "Copied $file to $backup_dir"
done

# 디버깅 비활성화
set +x

echo "Backup completed."

스크립트 실행 권한 부여

터미널을 열고 스크립트 파일이 있는 디렉터리로 이동합니다. chmod 명령어를 사용하여 스크립트에 실행 권한을 부여합니다.

chmod +x backup.sh

스크립트 실행

스크립트를 실행합니다. 실행하기 전에 source_dirbackup_dir 경로를 실제 경로로 변경해야 합니다.

./backup.sh

caption: 백업 실습

디버깅 확인

스크립트 실행 결과를 확인합니다. 디버깅이 활성화된 구간에서는 명령어 실행 전후의 상세한 디버깅 정보를 볼 수 있습니다. 백업 디렉터리가 없는 경우는 생성부터 합니다.

+ '[' '!' -d /home/easyfly/BACKUP ']'
+ mkdir -p /home/easyfly/BACKUP
+ echo 'Backup directory created.'
Backup directory created.
+ for file in "$source_dir"/*.txt
+ cp '/home/easyfly/GIT/HtmlCSS/*.txt' /home/easyfly/BACKUP
cp: '/home/easyfly/GIT/HtmlCSS/*.txt' 상태 정보 확인 불가: 그런 파일이나 디렉터리가 없습니다
+ echo 'Copied /home/easyfly/GIT/HtmlCSS/*.txt to /home/easyfly/BACKUP'
Copied /home/easyfly/GIT/HtmlCSS/*.txt to /home/easyfly/BACKUP
+ set +x
Backup completed.

이 출력 결과에서 +로 시작하는 줄은 디버깅 정보로, 명령어가 실행되기 전과 후의 상태를 보여줍니다.

정리

  • 현실적인 예제로 디렉터리 내의 파일을 백업하는 스크립트를 작성하였습니다.
  • set -x 명령어로 디버깅을 활성화하고 set +x 명령어로 디버깅을 비활성화하여 스크립트 실행 과정의 상세 정보를 확인할 수 있습니다.
  • 이 스크립트를 통해 파일 복사 작업과 디버깅 기능을 실습할 수 있습니다.
반응형