[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Long variable value get corrupted sometimes
From: |
Greg Wooledge |
Subject: |
Re: Long variable value get corrupted sometimes |
Date: |
Wed, 16 Feb 2022 08:59:03 -0500 |
On Wed, Feb 16, 2022 at 02:53:43PM +0100, Léa Gris wrote:
> Le 16/02/2022 à 13:43, Greg Wooledge écrivait :
> > text=$(cat /tmp/foo.txt; printf x)
> > text=${text%x}
>
> or read -r -d '' text </tmp/foo.txt
>
> witch saves a sub-shell
You forgot IFS= there. Without that, it'll strip leading/trailing IFS
whitespace.
You also get a non-zero exit status from read when you use your approach,
which will cause the script to die immediately if the author is using
set -e. While some of us may consider that a benefit (breaking more
set -e scripts raises awareness of how utterly horrible set -e is),
there are still some misguided souls out there who might not see it as
helpful just yet.