[Devel] [PATCH] Using Here-doc instead of echo "..."

Kir Kolyshkin kir at openvz.org
Tue Apr 30 17:09:57 PDT 2013


On 04/30/2013 04:58 PM, Igor Podlesny wrote:
> -- Here-doc is generally more readable/writeable way to implement
> "patterns" in SHELL.

indeed

> ---
>   etc/dists/scripts/debian-add_ip.sh |    9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/etc/dists/scripts/debian-add_ip.sh b/etc/dists/scripts/debian-add_ip.sh
> index 2ba555a..153e67d 100755
> --- a/etc/dists/scripts/debian-add_ip.sh
> +++ b/etc/dists/scripts/debian-add_ip.sh
> @@ -47,7 +47,8 @@ setup_network()
>   				"${CFGFILE}-$(date --rfc-3339=seconds).bak"
>   		}
>   
> -	echo "# This configuration file is auto-generated.
> +	cat > "$CFGFILE" <<__ETC_NET_INT__
> +# This configuration file is auto-generated.
>   #
>   # $dont_edit, your changes will be lost.
>   # Please create/edit $CFGFILE.head and
> @@ -57,7 +58,7 @@ setup_network()
>   # NOTE: it is NOT guaranteed that the contents of $CFGFILE.tail
>   # will be at the very end of this file.
>   #
> -" > ${CFGFILE}
> +__ETC_NET_INT__
>   
>   	if [ -f ${CFGFILE}.head ]; then
>   		cat ${CFGFILE}.head >> ${CFGFILE}
> @@ -84,7 +85,7 @@ iface ${LOOPBACK} inet loopback" >> ${CFGFILE}
>   
>   	if [ -n "${IP_ADDR}" ]; then
>   		# Set up venet0
> -		echo "
> +		cat >> "$CFGFILE" <<__VENET__
>   # Auto generated ${VENET_DEV} interface

I think you accidentally removed an empty line here.

>   auto ${VENET_DEV}
>   iface ${VENET_DEV} inet manual
> @@ -93,7 +94,7 @@ iface ${VENET_DEV} inet manual
>   	up route add default dev ${VENET_DEV}
>   	down route del default dev ${VENET_DEV}
>   	down ifconfig ${VENET_DEV} down
> -" >> ${CFGFILE}
> +__VENET__
>   
>   		if [ "${IPV6}" = "yes" ]; then
>   			echo "

Overall looks good, although you don't have to have unique identifiers
for here-doc delimiters, something like EOF should work just fine.

Also please make sure checkbashism script is OK with your changes;
one day I found out that it doesn't like delimiters such as -EOF-
(see commit 845a257).

PS would be great if you next iteration with have v3 added, and
be a reply to this email, so it's easier to track. Same for other stuff 
you send.



More information about the Devel mailing list