Problems With My Simple Write Conf Files Method
I have been creating conf files and similar with the following method that I picked up (I think from psotfix docs):
cat <
root: youremail EOF
See: http://medon.htt-consult.com/CentOS7-armv7.html
But with postfixadmin I stumbled onto a problem. The following:
cat <
EOF
produces:
cat <
That is the ‘$CONF’ gets processed.
What can I do to avoid this (and any other ‘gotchas’) or can someone provide an alternative?
thanks
5 thoughts on - Problems With My Simple Write Conf Files Method
I have never used this method per se, but in general in any script if you want to preserve the $ (dollar sign) or variable name you must use a backslash to preserve it. For example change your $CONF to \$CONF. The $CONF should then be printed into your conf file. KM
From: Robert Moskowitz
To: CentOS@CentOS.org Sent: Tuesday, February 21, 2017 10:50 AM
Subject: [CentOS] Problems with my simple write conf files method
I have been creating conf files and similar with the following method that I picked up (I think from psotfix docs):
cat <>/etc/aliases || exit 1
root: youremail EOF
See: http://medon.htt-consult.com/CentOS7-armv7.html
But with postfixadmin I stumbled onto a problem. The following:
cat </usr/share/postfixadmin/config.local.php || exit 1
EOF
produces:
cat </usr/share/postfixadmin/config.local.php || exit 1
That is the ‘$CONF’ gets processed.
What can I do to avoid this (and any other ‘gotchas’) or can someone provide an alternative?
thanks
Thanks that worked.
great.
From: Robert Moskowitz
To: CentOS mailing list
Sent: Tuesday, February 21, 2017 11:40 AM
Subject: Re: [CentOS] Problems with my simple write conf files method
Thanks that worked.
KMs method of escaping every $ in the here document works but a simpler method is to escape the EOF. That tells the shell not to do variable expansion in the document:
cat <<\EOF>/usr/share/postfixadmin/config.local.php || exit 1
Thank you. I actually had problems with changes to
/etc/postfix/master.cf where I have things like ${sender} that do not work as \${sender}. So mass changes of $ to \$ did not always work. :)
Do I end with ‘EOF’ or \EOF’?