[shell] bash shell echo multiline 출력시

multi-line 출력을 할 때 here document를 쓰면 편합니다.

예를 들어,

echo “DEVICE=eth0” > /etc/sysconfig/network-script/ifcfg-eth0

echo “BOOTPROTO=static” >> /etc/sysconfig/network-script/ifcfg-eth0

echo “IPADDR=$eth0” >> /etc/sysconfig/network-script/ifcfg-eth0

echo “NETMASK=255.255.255.0” >> /etc/sysconfig/network-script/ifcfg-eth0

echo “ONBOOT=yes” >> /etc/sysconfig/network-script/ifcfg-eth0

이 부분을

cat <<eth0-config > /etc/sysconfig/network-script/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=$eth0

NETMASK=255.255.255.0

ONBOOT=yes

eth0-config

이런 식으로 바꾸는 것이죠.

readability를 고려한다면

cat <<-eth0-config > /etc/sysconfig/network-script/ifcfg-eth0

        DEVICE=eth0

        BOOTPROTO=static

        IPADDR=$eth0

        NETMASK=255.255.255.0

        ONBOOT=yes

eth0-config

이렇게 합니다. “-” 심볼은 leading tab을 제거하라는 의미입니다(space는 제거 안함)

만약 parameter substitution ($ 변수를 치환하는 것)를 피하려면

cat <<‘eth0-config’



eth0-config

이렇게 합니다.

이 밖에도 재미있는 사용법이 http://www.linuxdoc.org/LDP/abs/html/here-docs.html 에

많이 있습니다. 참고하세요.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

4 Responses

  1. 2024년 9월 17일

    … [Trackback]

    […] Read More to that Topic: nblog.syszone.co.kr/archives/650 […]

  2. 2024년 10월 29일

    … [Trackback]

    […] Find More here to that Topic: nblog.syszone.co.kr/archives/650 […]

  3. 2024년 11월 28일

    … [Trackback]

    […] Find More on that Topic: nblog.syszone.co.kr/archives/650 […]

  4. 2024년 12월 3일

    … [Trackback]

    […] Find More here to that Topic: nblog.syszone.co.kr/archives/650 […]

페이스북/트위트/구글 계정으로 댓글 가능합니다.