Redirection in shell (was: squid HA failover?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Hi,

Regarding the last example creating the config files with several
echos with redirection:

On Fri, Feb 6, 2009 at 20:37, J Potter <jpotter-centos@xxxxxxxxxxxxx> wrote:
>        echo "node a.example.com" > /etc/ha.d/ha.cf
>        echo "node b.example.com" >> /etc/ha.d/ha.cf
>        echo "udpport 9000" >> /etc/ha.d/ha.cf
>        echo "bcast bond0" >> /etc/ha.d/ha.cf
>        echo "auto_failback off" >> /etc/ha.d/ha.cf
>        echo "logfile /var/log/ha-log" >> /etc/ha.d/ha.cf
>        echo "logfacility     local0" >> /etc/ha.d/ha.cf

I've seen this done too many times, and although this is the most
"popular" way of doing it in shell script, it is certainly not the
cleanest or the best. For one thing, it is inefficient in that it is
opening the file for every command line. And the code is not easy to
maintain, as if you change the filename you will have to change line
by line.

A better way to accomplish the same is:

{      echo "node a.example.com"
       echo "node b.example.com"
       echo "udpport 9000"
       echo "bcast bond0"
       echo "auto_failback off"
       echo "logfile /var/log/ha-log"
       echo "logfacility local0"
} >/etc/ha.d/ha.cf

And another way, using "here" documents is:

cat <<EDQ >/etc/ha.d/ha.cf
node a.example.com
node b.example.com
udpport 9000
bcast bond0
auto_failback off
logfile /var/log/ha-log
logfacility local0
EDQ

This second one is not so clean in that it "embeds" the document
inside the script, but it might be appropriate in some cases.

HTH,
Filipe
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos

[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux