Linux Bash shell script

Bash Shell Script 변수와 사용자 입력 이해하기

임베디드 친구 2025. 1. 20. 08:54
728x90
반응형

Bash Shell Script 변수와 사용자 입력 이해하기

Linux Bash 스크립트에서 변수를 활용하면 코드를 더 간결하고 효율적으로 작성할 수 있습니다. 이번 글에서는 환경 변수, 사용자 정의 변수, 그리고 사용자 입력 처리에 대해 알아보겠습니다. 또한 각 주제에 대한 예제를 포함하여 실습할 수 있도록 구성했습니다.


1. 변수의 기본 이해

Bash에서 변수는 데이터를 저장하고 스크립트 실행 중 반복적으로 사용할 수 있도록 도와줍니다.

변수에는 크게 두 가지 종류가 있습니다:

  1. 환경 변수 (Environment Variables)
  2. 사용자 정의 변수 (User-Defined Variables)

2. 환경 변수 (Environment Variables)

환경 변수는 Linux 시스템에서 이미 정의되어 있는 변수입니다. 예를 들어, 현재 사용자의 이름, 홈 디렉토리, 쉘의 기본 경로 등이 포함됩니다.

주요 환경 변수

변수 이름 설명
$HOME 현재 사용자의 홈 디렉토리 경로
$USER 현재 로그인한 사용자 이름
$PATH 실행 파일을 찾는 디렉토리 경로 리스트
$SHELL 기본 쉘 종류
$PWD 현재 작업 디렉토리 경로

환경 변수 사용 예제

#!/bin/bash
# 환경 변수 출력하기

echo "현재 사용자: $USER"
echo "홈 디렉토리: $HOME"
echo "현재 작업 디렉토리: $PWD"
echo "사용 중인 쉘: $SHELL"

실행 방법:

chmod +x example_env.sh
./example_env.sh

3. 사용자 정의 변수 (User-Defined Variables)

사용자 정의 변수는 스크립트 내에서 사용자가 직접 선언하여 사용할 수 있는 변수입니다.

변수 선언과 사용

  • 변수는 = 기호를 사용하여 선언합니다.
  • 변수 이름에는 공백이 포함되지 않아야 하며, 숫자로 시작할 수 없습니다.
  • 변수를 사용할 때는 $ 기호를 붙여 참조합니다.

예제: 사용자 정의 변수

#!/bin/bash
# 사용자 정의 변수 예제

name="소프트웨어 공장"
echo "블로그 이름: $name"

year=2025
echo "올해는 $year년 입니다."

변수의 읽기 전용 및 삭제

  • 변수 읽기 전용: readonly
  • 변수 삭제: unset

예제: 읽기 전용 변수와 삭제

#!/bin/bash
# 읽기 전용 변수와 삭제

readonly blog_name="소프트웨어 공장"
echo "블로그 이름: $blog_name"

# 아래 명령어는 오류를 발생시킴
# blog_name="다른 이름"

variable="임시 변수"
echo $variable
unset variable
echo $variable  # 변수 값이 삭제되어 출력되지 않음

4. 사용자 입력 처리

Bash 스크립트에서 사용자 입력을 받을 때는 read 명령어를 사용합니다.

기본 read 사용법

read 변수명

사용자로부터 입력을 받아 지정된 변수에 저장합니다.

예제: 사용자 이름 입력 받기

#!/bin/bash
# 사용자 입력 받기

echo "이름을 입력하세요:"
read user_name
echo "안녕하세요, $user_name 님!"

프롬프트 메시지와 -p 옵션

read 명령어에 -p 옵션을 사용하면 입력을 요청하는 메시지를 동일한 줄에 출력할 수 있습니다.

예제: -p 옵션 사용

#!/bin/bash
# -p 옵션으로 입력 받기

read -p "나이를 입력하세요: " age
echo "당신의 나이는 $age 살입니다."

비밀번호 입력 받기

-s 옵션을 사용하면 입력 내용을 화면에 표시하지 않습니다. 주로 비밀번호 입력에 사용됩니다.

예제: 비밀번호 입력 받기

#!/bin/bash
# 비밀번호 입력 받기

read -s -p "비밀번호를 입력하세요: " password
echo

echo "입력된 비밀번호: $password"

입력값 검증하기

사용자가 올바른 값을 입력했는지 확인하려면 조건문(if)과 함께 사용합니다.

예제: 입력값 검증

#!/bin/bash
# 입력값 검증하기

read -p "1에서 10 사이의 숫자를 입력하세요: " number

if [[ $number -ge 1 && $number -le 10 ]]; then
  echo "올바른 숫자를 입력하셨습니다: $number"
else
  echo "유효하지 않은 입력입니다. 다시 시도하세요."
fi

5. 변수와 사용자 입력의 활용 사례

환경 변수와 사용자 정의 변수, 그리고 사용자 입력을 결합하여 간단한 프로그램을 만들어봅시다.

예제: 사용자 정보 출력 프로그램

#!/bin/bash
# 사용자 정보 출력 프로그램

read -p "사용자 이름을 입력하세요: " user_name
read -p "나이를 입력하세요: " age

welcome_message="안녕하세요, $user_name 님!"
age_message="당신의 나이는 $age 살입니다."

# 출력하기
echo "$welcome_message"
echo "$age_message"
echo "현재 사용 중인 쉘은 $SHELL 입니다."

실행 방법:

chmod +x user_info.sh
./user_info.sh

6. 마무리

이번 글에서는 Bash 스크립트에서 변수와 사용자 입력 처리 방법에 대해 알아보았습니다. 환경 변수와 사용자 정의 변수를 활용하면 스크립트가 훨씬 유연하고 강력해집니다.

728x90
반응형