Bash Shell Script - 변수 선언, 할당

By JS | Last updated: October 02, 2021

Linux의 Bash 쉘 스크립트에서 변수를 선언하고 할당하는 방법에 대해서 알아봅니다.

1. Syntax

변수 이름을 입력하고 =로 값을 입력해주면 됩니다.

VARIABLE_NAME=value

하지만 다음과 같이, 변수 이름이 숫자로 시작하거나, 변수 이름에 -, *, ! 문자가 포함되면 안됩니다.

2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

2. 변수 선언 및 할당

예를 들어, 다음과 같이 변수를 선언하고 값을 할당할 수 있습니다. 또한, 처음 변수에 값을 할당한 후에도, 새로운 값으로 변경할 수 있습니다.

#!/bin/bash

VAR1=10
var2="Ten"

VAR1=15
var2="Fifteen"

3. 변수 접근 및 출력

변수에 접근할 때는 pre-fix로 $를 붙여줘야 합니다. $VAR1VAR1의 값을 의미합니다.

따라서, echo를 이용하여 다음과 같이 터미널에 변수 값을 출력할 수 있습니다.

#!/bin/bash

VAR1=10
var2="Ten"

echo $VAR1
echo $var2

Output:

$ bash example.sh
10
Ten

4. 변수에 다른 변수의 값 할당

다음과 같이 어떤 변수에 다른 변수의 값을 할당할 수 있습니다. 변수의 값에 접근하는 것이기 때문에 $VAR1처럼 $를 붙여줘야 합니다.

#!/bin/bash

VAR1=10

var2=$VAR1

echo $VAR1
echo $var2

Output:

$ bash example.sh
10
10

5. 여러 변수들의 값들을 변수에 대입

다음과 같이 여러 변수들의 값들을 붙여서 하나의 변수에 할당할 수 있습니다.

#!/bin/bash

VAR1="Hello"
VAR2="World!"

VAR3=${VAR1}${VAR2}
echo $VAR3

Output:

$ bash example.sh
HelloWorld!

아래와 같이 {}없이도 할당 가능한데, {}로 구분해주는게 가독성이 좋은 것 같습니다.

VAR3=$VAR1$VAR2

5.1 여러 변수들의 숫자 값을 연산하여 변수에 대입

다음과 같이 괄호를 두번 사용하여, 두개의 변수를 직접 더할 수 있습니다.

#!/bin/bash

a=10
b=20

sum=$(($a + $b))
echo $sum

Output:

30

빼기, 곱하기, 나누기 등도 위의 예제와 비슷하게 연산할 수 있습니다. 자세한 것은 Shell Script - 숫자 연산를 참고해주세요.

6. 명령어의 실행 결과를 변수에 할당

다음과 같이 pre-fix $를 붙이면 명령어의 실행 결과가 변수에 할당됩니다.

#!/bin/bash

VAR1=$(ls -al)

echo $VAR1

Output:

$ bash example.sh
total 68 drwxrwxr-x 2 mjs mjs 4096 10 2 12:05 . drwxr-xr-x 49 mjs mjs 4096 10 1 23:23 .. -rw-rw-r-- 1 mjs mjs 75 9 30 22:12 ex_add2.sh -rw-rw-r-- 1 mjs mjs 48 9 30 22:12 ex_add.sh -rw-rw-r-- 1 mjs mjs 140 9 28 22:09 ex_arg2.sh
...

7. unset으로 변수 제거

unset은 등록된 변수를 제거하는 것입니다. 즉, 변수를 unset하면, 쉘 스크립트에서 이 변수가 선언된 적이 없었던 것처럼 만듭니다.

#!/bin/bash

VAR1="Hello"
echo $VAR1

unset VAR1

echo $VAR1

실행 결과를 보면, unset 후에는 아무것도 출력되지 않습니다.

$ bash example.sh
Hello

8. readonly로 변수를 읽기 전용으로 변경

readonly VARIABLE는 변수를 변경이 불가능한, 읽기 전용 변수로 만듭니다. 즉, readonly로 어떤 변수를 읽기 전용으로 선언하면, 그 변수에는 새로운 값을 할당할 수 없습니다. 만약 변수에 값을 할당하려고 시도하면 에러가 발생합니다.

#!/bin/bash

VAR1="Hello"

readonly VAR1

VAR1="World!"

Output:

$ bash example.sh
ex_variable.sh: 7: VAR1: is read only

References

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha