"Bash 실행결과를 변수에 담기"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 14개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;Bash 실행결과 변수에 담기
;Bash 실행결과 변수에 담기
<source lang='bash'>
;리눅스 쉘 표준출력 변수에 담기
 
<syntaxhighlight lang='bash'>
변수명=`명령어`
변수명=`명령어`
</source>
</syntaxhighlight>
<source lang='bash'>
<syntaxhighlight lang='bash'>
변수명=$(명령어)
변수명=$(명령어)
</source>
</syntaxhighlight>


==실습==
==실습 1==
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# whoami
[root@zetawiki ~]# whoami
root
root
</source>
</syntaxhighlight>
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# STR1=`whoami`
[root@zetawiki ~]# STR1=`whoami`
[root@jmnote ~]# echo $STR1
[root@zetawiki ~]# echo $STR1
root
root
</source>
</syntaxhighlight>
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# STR2=$(whoami)
[root@zetawiki ~]# STR2=$(whoami)
[root@jmnote ~]# echo $STR2
[root@zetawiki ~]# echo $STR2
root
root
</source>
</syntaxhighlight>
 
==실습 2 (여러 줄)==
{{참고|Bash 여러 줄을 변수에 담기}}
<syntaxhighlight lang='console'>
[root@zetawiki ~]# df
Filesystem          1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      27678892  18857392  7392816  72% /
/dev/xvda1              101086    36768    59099  39% /boot
tmpfs                  524288        0    524288  0% /dev/shm
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# STR3=`df`
[root@zetawiki ~]# echo $STR3
Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 27678892 18857392 7392816 72% / /dev/xvda1 101086 36768 59099 39% /boot tmpfs 524288 0 524288 0% /dev/shm
</syntaxhighlight>
:→ 여러 줄인 df 결과를 STR3 변수에 담았는데, echo로 출력하니 한줄로 나온다.
<syntaxhighlight lang='console'>
[root@zetawiki ~]# echo "$STR3"
Filesystem          1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      27678892  18857392  7392816  72% /
/dev/xvda1              101086    36768    59099  39% /boot
tmpfs                  524288        0    524288  0% /dev/shm
</syntaxhighlight>
:→ 앞뒤로 [[큰따옴표]]를 붙이면 원본과 동일하게 출력된다.


==같이 보기==
==같이 보기==
*[[Bash 여러 줄 출력을 배열에 담기]]
*[[Bash에서 함수 반환 값 받기]]
*[[Bash에서 함수 반환 값 받기]]
*[[리눅스 echo]]
*[[표준입출력]]
*[[표준입출력]]
==참고==
*http://stackoverflow.com/questions/613572/capturing-multiple-line-output-to-a-bash-variable


[[분류: Bash]]
[[분류: Bash]]

2020년 12월 21일 (월) 11:52 기준 최신판

1 개요[ | ]

Bash 실행결과 변수에 담기
리눅스 쉘 표준출력 변수에 담기
변수명=`명령어`
변수명=$(명령어)

2 실습 1[ | ]

[root@zetawiki ~]# whoami
root
[root@zetawiki ~]# STR1=`whoami`
[root@zetawiki ~]# echo $STR1
root
[root@zetawiki ~]# STR2=$(whoami)
[root@zetawiki ~]# echo $STR2
root

3 실습 2 (여러 줄)[ | ]

[root@zetawiki ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      27678892  18857392   7392816  72% /
/dev/xvda1              101086     36768     59099  39% /boot
tmpfs                   524288         0    524288   0% /dev/shm
[root@zetawiki ~]# STR3=`df`
[root@zetawiki ~]# echo $STR3
Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 27678892 18857392 7392816 72% / /dev/xvda1 101086 36768 59099 39% /boot tmpfs 524288 0 524288 0% /dev/shm
→ 여러 줄인 df 결과를 STR3 변수에 담았는데, echo로 출력하니 한줄로 나온다.
[root@zetawiki ~]# echo "$STR3"
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      27678892  18857392   7392816  72% /
/dev/xvda1              101086     36768     59099  39% /boot
tmpfs                   524288         0    524288   0% /dev/shm
→ 앞뒤로 큰따옴표를 붙이면 원본과 동일하게 출력된다.

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}