[Whonix-devel] [Help-bash] Why read exits non-zero? How to safely use bash's built-in read command?
Chet Ramey
chet.ramey at case.edu
Mon Oct 7 15:43:45 CEST 2019
On 10/7/19 2:47 AM, Patrick Schleizer wrote:
> #!/bin/bash
> 
> set -e
> 
> test -f ./advancedsettings.ico
> 
> while IFS= read -r -d '' line; do
>    echo "$line"
>    IFS= read -r -d '' first_word _ <<< "$line"
>    echo "$first_word"
> done < "./advancedsettings.ico"
Think about this. The first read guarantees that the value of `line' will
not contain a NUL, since you use that as the delimiter. Why, then, would
you expect a NUL when you use the value in a here-string?
Since there's no NUL, reading the here-string will always return EOF before
hitting the delimiter, causing read to return 1.
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet at case.edu    http://tiswww.cwru.edu/~chet/
More information about the Whonix-devel
mailing list