728x90
반응형
Bash Shell Script 변수와 사용자 입력 이해하기
Linux Bash 스크립트에서 변수를 활용하면 코드를 더 간결하고 효율적으로 작성할 수 있습니다. 이번 글에서는 환경 변수, 사용자 정의 변수, 그리고 사용자 입력 처리에 대해 알아보겠습니다. 또한 각 주제에 대한 예제를 포함하여 실습할 수 있도록 구성했습니다.
1. 변수의 기본 이해
Bash에서 변수는 데이터를 저장하고 스크립트 실행 중 반복적으로 사용할 수 있도록 도와줍니다.
변수에는 크게 두 가지 종류가 있습니다:
- 환경 변수 (Environment Variables)
- 사용자 정의 변수 (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
반응형
'Linux Bash shell script' 카테고리의 다른 글
Bash Shell Script 파일과 문자열 비교 (0) | 2025.01.22 |
---|---|
Bash Shell Script 조건문 [ if-else, elif ] 사용법 (0) | 2025.01.21 |
Bash Shell Script 변수와 사용자 입력 (0) | 2025.01.19 |
Bash Shell Script 표준 입력/출력 및 리다이렉션 (0) | 2025.01.18 |
Bash Shell Script 기본 출력 명령어 [ echo, printf ] (0) | 2025.01.17 |