네트워크 엔지니어 & 개발자 로엘이

Bash script 변수 활용하기 1

리눅스 쉘 스크립트를 작성하며 사용할 수 있는 다양한 변수를 정리해본다.

 

변수 선언 및 값 설정하기

일반적인 프로그래밍 언어와 마찬가지로 = 을 사용하여 변수에 값을 설정한다.

변수의 이름은 대소문자가 구분된다.

= 의 앞(변수이름) 뒤(변수 값)에는 공백이 없어야 한다.

변수 값에 공백이 있는 경우 변수 값의 시작과 끝에 "을 사용한다.

별도의 변환문자를 지정하지 않아도 된다.

#!/bin/bash

var1=1004
var2=7777
var3=test

echo $var1
echo $VAR2
echo $var3


# 실행 결과
1004

test

var1, var2, var3 변수를 선언 및 설정하여 출력하였으며 출력 결과 var2는 대문자로 지정하여 출력되지 않은걸 볼 수 있다.

 

명령의 실행 결과를 변수 값으로 설정하기

명령의 실행 결과를 변수에 저장하는 방법은 정상적으로 처리된 표준 출력을 저장하는 방법과 표준 오류를 저장하는 방법 포준 출력과 표준에러를 모두 저장하는 방법으로 나뉜다.

 

표준 출력을 변수값으로 설정하기

명령의 실행 결과를 변수에 저장하는 방법은 명령의 시작과 끝에 '를 사용하는 방법과 $(command)를 사용하는 방법이 있다.

#!/bin/bash

var0=uname
var1="uname"
var2=`uname`
var3=$(uname)

echo $var0
echo $var1
echo $var2
echo $var3

# 실행 결과
uname
uname
Linux
Linux

 

표준 에러를 변수값으로 설정하기

명령의 표준 에러는 설정을 하지 않으면 변수에 저장되는 것이 아닌 터미널에 출력된다.

표준 에러를 변수에 저장하는 방법은 표준 출력을 변수값 설정 후 2>&1 명령으로 표준 오류를 표준 출력으로 리다이렉션하고 >/dev/null 명령으로 표준 출력 값을 버리면 표준 에러값만 변수로 설정하게 된다.

#!/bin/bash

var0=`uname -te`
var1=`uname -te 2>&1 >/dev/null`
var2=`uname 2>&1 >/dev/null`
var3=$(uname -te)
var4=$(uname -te 2>&1 >/dev/null)
var5=$(uname 2>&1 >/dev/null)

echo print $var0
echo print $var1
echo print $var2
echo print $var3
echo print $var4
echo print $var5

# 실행 결과
uname: 부적절한 옵션 -- 't'
Try 'uname --help' for more information.
uname: 부적절한 옵션 -- 't'
Try 'uname --help' for more information.
print
print uname: 부적절한 옵션 -- 't' Try 'uname --help' for more information.
print
print uname: 부적절한 옵션 -- 't' Try 'uname --help' for more information.

 

 

표준 출력, 표준 에러 모두 변수값으로 저장하기

표준 출력 변수값을 설정한 후 2>&1 명령으로 표준 오류를 표준 출력으로 리다이렉션하면 표준 출력과 표준 에러를 모두 변수로 설정한다.

#!/bin/bash

var0=`uname -te 2>&1`
var1=`uname 2>&1`
var2=$(uname -te 2>&1)
var3=$(uname 2>&1)

echo print $var0
echo print $var1
echo print $var2
echo print $var3

# 실행 결과
print uname: 부적절한 옵션 -- 't' Try 'uname --help' for more information.
print Linux
print uname: 부적절한 옵션 -- 't' Try 'uname --help' for more information.
print Linux

 

 

- 끝 -

728x90

'OS > Bash script' 카테고리의 다른 글

[Bash script] 리눅스 쉘스크립트 작성 및 실행하기  (0) 2021.11.14
반응형
250x250

공유하기

facebook twitter kakaoTalk kakaostory naver band