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로 $
를 붙여줘야 합니다. $VAR1
는 VAR1
의 값을 의미합니다.
따라서, 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 js js 4096 10 2 12:05 . drwxr-xr-x 49 js js 4096 10 1 23:23 .. -rw-rw-r-- 1 js js 75 9 30 22:12 ex_add2.sh -rw-rw-r-- 1 js js 48 9 30 22:12 ex_add.sh -rw-rw-r-- 1 js js 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
9. References
Related Posts
- Bash Shell - 문자열에서 마지막 문자 N개 제거
- Bash Shell - 문자열에서 첫번째 문자 N개 제거
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 함수, 특정 시간 멈추기
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)