리눅스 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
시간을 출력해주는 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 ~]$
도움이 되셨다면 밑에 공감 버튼 눌러주시면 감사하겠습니다.
댓글