Unix / Linux - 사용하는 Shell 변수

안녕하세요, 미래의 리눅스 마법사 여러분! 오늘 우리는 Shell 변수의 마법의 세상으로 뛰어들어가요. 너른 이웃의 친절한 컴퓨터 선생님이자, 이 여정을 안내해드리는 저는 이 과정을 가능한 한 재미있고 쉽게 만들어드리려고 합니다. 그러니 가상의魔杖(키보드)을 손에握고, 시작해보세요!

Unix / Linux - Using Variables

변수 이름

리눅스/Unix 셸에서 변수는 우리를 위해 정보를 보관하는 작은 컨테이너입니다. 그것들을 레이블이 달린 상자로 생각해보세요. 우리가 이 상자들을 채우기 전에, 어떻게 올바르게 이름을 지어야 하는지 알아야 합니다.

변수 이름 지정 규칙:

  1. 알파벳(a-z, A-Z)나 밑줄(_)로 시작해야 합니다.
  2. 알파벳, 숫자, 밑줄을 포함할 수 있습니다.
  3. 대소문자를 구분합니다 (myVar은 MyVar과 다릅니다).
  4. 공백이나 특수문자는 허용되지 않습니다.

다음은 올바른 변수 이름의 예입니다:

user_name
_secret
count123
MY_BIG_VARIABLE

그리고 잘못된 이름의 예입니다:

2fast2furious (숫자로 시작)
my-variable (하이픈 포함)
user name (공백 포함)
$money (특수문자로 시작)

기억하세요, 좋은 변수 이름을 선택하는 것은 마법사 대결에서 적절한 마법을 고르는 것과 같아요 - 차이를 만들 수 있습니다!

변수 정의

이제 우리는 변수 이름을 지정하는 방법을 알고 있으니, 변수를 만드는 방법을 배워보겠습니다. 리눅스/Unix 셸에서는 할당 연산자 (=)를 사용하여 변수를 정의합니다. 기본 문법은 다음과 같습니다:

variable_name=value

중요: '=' 기호 주위에는 공백이 없어야 합니다. 값에 공백이 포함된 경우, 따옴표로 감싸야 합니다.

다음은 예제입니다:

name="John Doe"
age=25
favorite_color="blue"

이 예제에서 우리는 세 가지 변수 name, age, favorite_color을 만들고 값들을 할당했습니다.

값 접근

좋아요! 우리는 정보를 저장했지만, 어떻게 이를 검색할까요? 변수의 값을 접근하려면 dollor 기호($)를 사용한 후 변수 이름을 작성합니다. 이를 어떻게 사용하는지 보겠습니다:

echo $name
echo "My age is $age"
echo "I love the color $favorite_color"

이 명령어를 실행하면 다음과 같이 나타납니다:

John Doe
My age is 25
I love the color blue

쿨하지 않나요? 마법 같은 것처럼 보이지만, 그 작동原理을 이해하고 있으니 더 좋죠!

읽기 전용 변수

때로는 설정한 후 변경할 수 없는 변수를 만들고 싶을 때가 있습니다. 이를 읽기 전용 변수라고 합니다. 읽기 전용 변수를 만들기 위해서는 readonly 명령어를 사용합니다:

readonly PI=3.14159
echo $PI
PI=3.14  # 이는 오류를 발생시킵니다

읽기 전용 변수를 변경하려고 시도하면 셸은 당신을 엄하게 책망할 것입니다!

변수 제거

그런데 우리가 변수를 완전히 제거하고 싶다면 어떻게 하나요? 이때 unset 명령어가 유용합니다. 다음은 그 사용 방법입니다:

fruit="apple"
echo $fruit  # 출력: apple
unset fruit
echo $fruit  # 출력: (아무것도 없음)

기억하세요, 읽기 전용 변수는 제거할 수 없습니다. 그들은 셸 세계의 고대의魔杖처럼 - 한 번 만들어지면 영원히 남아 있습니다!

변수 유형

셸 스크립팅에서 변수는 다양한 데이터 유형을 담을 수 있습니다. 주요 유형을 탐구해보겠습니다:

유형 설명 예제
문자열 문자의序列 name="John"
정수 정수 age=30
배열 값의 목록 fruits=("apple" "banana")
부울 참 또는 거짓 (셸에서는 0 또는 1) is_student=true

이제 이들을 실제로 사용해보겠습니다:

# 문자열
greeting="Hello, World!"
echo $greeting

# 정수
year=2023
echo "Current year is $year"

# 배열
colors=("red" "green" "blue")
echo "My favorite color is ${colors[0]}"

# 부울 (0 또는 1로 표현)
is_raining=0
if [ $is_raining -eq 0 ]; then
echo "It's a sunny day!"
else
echo "Don't forget your umbrella!"
fi

이 예제에서 우리는 다양한 유형의 변수를 사용하고 그들과 어떻게 작업하는지 보였습니다. 배열은 특별한 경우 - 우리는 대괄호와 인덱스를 사용하여 개별 요소에 접근합니다.

기억하세요, 일부 프로그래밍 언어와 달리, 셸 스크립팅은 이러한 유형을 엄격하게 강제하지 않습니다. 당신, 마법사 훈련생이 올바르게 사용해야 합니다!

결론

이제 당신은 리눅스/Unix 셸 변수의 땅을 여행했고, 이름 지정과 정의에서 접근과 제거까지, 그리고 만날 수 있는 다양한 유형의 변수를 살펴보았습니다.

기억하세요, 연습이 완벽을 이루는 것입니다. 자신만의 변수를 만들고, 그들과 놀아보세요. 실수를 두려워 말아요. 그것이 모든 위대한 리눅스 마법사가 배우는 방법입니다!

다음 수업에서는 이러한 변수를 더 복잡한 셸 스크립트에서 어떻게 사용할 수 있는지 탐구할 것입니다. 그때까지, 셸이 당신과 함께 하기를 바랍니다!

Credits: Image by storyset