본문 바로가기
아이티 공부/리눅스

리눅스 Bash 쉘 스크립트 실행결과를 변수에 담는 방법

by Klero 2019. 2. 21.
반응형
리눅스 Bash 쉘스크립트 실행결과를 변수에 담는 방법


Bash 쉘에서 어떤 명령어에 대한 실행결과를 특정한 변수에 담았다가 필요할 때 출력할 수 있습니다. 


아래는 1000 - 1024에 대한 값은 변수 a와 변수 b에 담을려고 하는데요. a 변수에는 ` ` 특수 문자를 사용해서 변수에

값을 담았고 b 변수에는 $ 특수 문자를 사용해서 변수에 값을 담았습니다. 그리고 echo 명령어를 통해 출력하면 변수에 담긴

값이 잘 출력되는 것을 볼 수 있습니다.


[centos@linux ~]$ a=`(echo 1024 | awk '{print 1000-$1}')`

[centos@linux ~]$ b=$(echo 1024 | awk '{print 1000-$1}')

[centos@linux ~]$

[centos@linux ~]$ echo $a

-24

[centos@linux ~]$

[centos@linux ~]$ echo $b

-24


리눅스awk사용



시간을 출력해주는 date 명령어를 변수에 담았다가 출력할 수도 있습니다. 사실 위 방법과 별 차이 없습니다.

이제 아시겠지만 변수를 담을 때는 ` ` 를 사용하거나 $를 사용해서 변수에 값을 담을 수 있습니다.


$ date

Thu Feb 21 16:24:13 KST 2019


[centos@linux ~]$ var=`(date)`

[centos@linux ~]$ echo $var

Thu Feb 21 16:24:41 KST 2019


[centos@linux ~]$ var=$(date)

[centos@linux ~]$ echo $var

Thu Feb 21 16:25:40 KST 2019


리눅스변수담기



번외로 변수에 담은 값이 일렬로 보기 안좋게 출력된다면 " "로 묶어서 출력해 보시길 바라겠습니다.


아래는 디스크 정보를 출력해주는 df 명령어를 변수에 담아서 변수 값을 출력한 것인데요. 
그냥 출력하면 일렬로 가독성이 좋지 않게 출력되는데 " " 쌍따옴표로 묶어서 echo 명령어로

출력하면 보기 좋게 잘 출력되는 것을 볼 수 있습니다.


[centos@linux ~]$ disk=$(df -h)

[centos@linux ~]$ echo $disk

Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 2.8G 4.7G 38% / tmpfs 498M 0 498M 0% /dev/shm

[centos@linux ~]$

[centos@linux ~]$ echo "$disk"

Filesystem      Size  Used Avail Use% Mounted on

/dev/xvda1      7.8G  2.8G  4.7G  38% /

tmpfs           498M     0  498M   0% /dev/shm

[centos@linux ~]$


리눅스 쉘 변수 값 확인


도움이 되셨다면 밑에 공감 버튼 눌러주시면 감사하겠습니다.

댓글