[Linux] 자동화 목적의 Shell파일 구성

오진선·2024년 12월 11일
0

Cloud

목록 보기
6/17
post-thumbnail

반복 작업 자동화를 위한 쉘 스크립트 작성

1. 기본 쉘 스크립트 작성

(1) 스크립트 파일 생성

nano automation.sh

(2) 기본 구조 작성

#!/bin/bash
# 반복 작업 자동화를 위한 쉘 스크립트

echo "자동화 작업 시작"

# 실제 사용자 홈 디렉터리 경로를 동적으로 설정
USER_HOME=$(eval echo ~${SUDO_USER})

# 파일 생성
touch "$USER_HOME/newfile.txt"
echo "파일 생성 완료: $USER_HOME/newfile.txt"

# 파일 권한 변경
chmod 644 "$USER_HOME/newfile.txt"
echo "파일 권한 변경 완료: 644"

# 패키지 설치 (예: curl)
sudo apt update && sudo apt install -y curl
echo "curl 설치 완료"

echo "자동화 작업 완료"

(3) 실행 권한 부여

chmod +x automation.sh

(4) 스크립트 실행

./automation.sh

실행이 제대로 되면

script 실행 한 번으로 여러가지 작업이 가능해진다
(물론 curl은 이미 깔려있다고...)


2. 스크립트 설명

  • #!/bin/bash: Bash 쉘에서 실행할 스크립트임을 명시합니다.
  • touch: 새 파일을 생성합니다.
  • chmod: 파일의 권한을 변경합니다.
  • sudo apt install: 패키지를 설치합니다.

3. 추가 팁

(1) 변수 사용

반복되는 값은 변수로 관리하여 유지보수성을 높입니다.

#!/bin/bash
FILENAME="/home/username/newfile.txt"
chmod 644 $FILENAME

(2) 조건문 활용

조건에 따라 작업을 분기 처리합니다.

if [ ! -f "/home/username/newfile.txt" ]; then
  touch "/home/username/newfile.txt"
  echo "새 파일을 생성했습니다."
else
  echo "파일이 이미 존재합니다."
fi

(3) 루프 활용

반복 작업을 효율적으로 처리합니다.

for i in {1..5}; do
  touch "/home/username/file_$i.txt"
  echo "file_$i.txt 생성 완료"
done

4. 스크립트 예제: 자동화 패키지 설치

#!/bin/bash
# 설치할 패키지 목록
PACKAGES=("curl" "wget" "vim")

echo "패키지 설치 시작"
for pkg in "${PACKAGES[@]}"; do
  sudo apt install -y $pkg
  echo "$pkg 설치 완료"
done
echo "모든 패키지 설치 완료"
profile
₍ ᐢ. ̫ .ᐢ ₎

0개의 댓글