"리눅스 여러 줄 출력을 배열에 담기"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 9개는 보이지 않습니다)
3번째 줄: 3번째 줄:
;Bash 여러 줄 출력을 배열에 담기
;Bash 여러 줄 출력을 배열에 담기
;리눅스 여러 줄 출력을 배열에 담기
;리눅스 여러 줄 출력을 배열에 담기
<source lang='bash'>
<syntaxhighlight lang='bash'>
IFS=$'\n' 배열변수명=(`명령어`)
IFS=$'\n' 배열변수명=(`명령어`)
</source>
</syntaxhighlight>


==실습==
==실습==
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# df
[root@zetawiki ~]# df
Filesystem          1K-blocks      Used Available Use% Mounted on
Filesystem          1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
/dev/mapper/VolGroup00-LogVol00
15번째 줄: 15번째 줄:
/dev/xvda1              101086    36768    59099  39% /boot
/dev/xvda1              101086    36768    59099  39% /boot
tmpfs                  524288        0    524288  0% /dev/shm
tmpfs                  524288        0    524288  0% /dev/shm
</source>
</syntaxhighlight>
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# IFS=$'\n' ARR=(`df`)
[root@zetawiki ~]# IFS=$'\n' ARR=(`df`)
[root@jmnote ~]# for VALUE in "${ARR[@]}"; do echo "<---- $VALUE ---->"; done
[root@zetawiki ~]# for VALUE in "${ARR[@]}"; do echo "<---- $VALUE ---->"; done
<---- Filesystem          1K-blocks      Used Available Use% Mounted on ---->
<---- Filesystem          1K-blocks      Used Available Use% Mounted on ---->
<---- /dev/mapper/VolGroup00-LogVol00 ---->
<---- /dev/mapper/VolGroup00-LogVol00 ---->
24번째 줄: 24번째 줄:
<---- /dev/xvda1              101086    36768    59099  39% /boot ---->
<---- /dev/xvda1              101086    36768    59099  39% /boot ---->
<---- tmpfs                  524288        0    524288  0% /dev/shm ---->
<---- tmpfs                  524288        0    524288  0% /dev/shm ---->
</source>
</syntaxhighlight>
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# echo ${ARR[0]}
[root@zetawiki ~]# echo ${ARR[0]}
Filesystem          1K-blocks      Used Available Use% Mounted on
Filesystem          1K-blocks      Used Available Use% Mounted on
[root@jmnote ~]# echo ${ARR[1]}
[root@zetawiki ~]# echo ${ARR[1]}
/dev/mapper/VolGroup00-LogVol00
/dev/mapper/VolGroup00-LogVol00
</source>
</syntaxhighlight>


==같이 보기==
==같이 보기==
*[[Bash 실행결과를 변수에 담기]]
* [[Bash 실행결과를 변수에 담기]]
*[[Bash에서 MySQL 사용]]
* [[Bash에서 MySQL 사용]]
* [[리눅스 여러 줄 출력을 한줄로 만들기]]


==참고 자료==
==참고==
*http://ubuntuforums.org/showthread.php?t=1555275
*http://ubuntuforums.org/showthread.php?t=1555275
*http://www.linuxquestions.org/questions/linux-general-1/store-multi-line-output-into-an-array-in-a-linux-bash-script-706878/
*http://www.linuxquestions.org/questions/linux-general-1/store-multi-line-output-into-an-array-in-a-linux-bash-script-706878/
*http://stackoverflow.com/questions/16831429/when-setting-ifs-to-split-on-newlines-why-is-it-necessary-to-include-a-backspac


[[분류: bash]]
[[분류: bash]]
[[분류: IFS]]
[[분류:리눅스 멀티라인]]

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

1 개요[ | ]

Store multi-line output into an array in a Linux bash script
Bash 여러 줄 출력을 배열에 담기
리눅스 여러 줄 출력을 배열에 담기
IFS=$'\n' 배열변수명=(`명령어`)

2 실습[ | ]

[root@zetawiki ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      27678892  18857720   7392488  72% /
/dev/xvda1              101086     36768     59099  39% /boot
tmpfs                   524288         0    524288   0% /dev/shm
[root@zetawiki ~]# IFS=$'\n' ARR=(`df`)
[root@zetawiki ~]# for VALUE in "${ARR[@]}"; do echo "<---- $VALUE ---->"; done
<---- Filesystem           1K-blocks      Used Available Use% Mounted on ---->
<---- /dev/mapper/VolGroup00-LogVol00 ---->
<----                       27678892  18857720   7392488  72% / ---->
<---- /dev/xvda1              101086     36768     59099  39% /boot ---->
<---- tmpfs                   524288         0    524288   0% /dev/shm ---->
[root@zetawiki ~]# echo ${ARR[0]}
Filesystem           1K-blocks      Used Available Use% Mounted on
[root@zetawiki ~]# echo ${ARR[1]}
/dev/mapper/VolGroup00-LogVol00

3 같이 보기[ | ]

4 참고[ | ]

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