Date: Wed, 18 Dec 2019 19:40:45 -0400 From: Bize Ma <binaryze...@gmail.com> Message-ID: <cafra36gnku2dtcyivz+camgntf7gvgjutiwicunbzatcckx...@mail.gmail.com>
| A little delay seems to get it working: | | $ echo value | { read -t 0 var; } ; echo $? | 0 It might, but that is adding no significant delay, and the results are unpredictable. jinx$ echo value | { read -t 0 var; } ; echo $? 0 jinx$ echo value | { read -t 0 var; } ; echo $? 0 jinx$ echo value | { read -t 0 var; } ; echo $? 1 jinx$ echo value | { read -t 0 var; } ; echo $? 1 jinx$ echo value | { read -t 0 var; } ; echo $? 0 jinx$ echo value | { read -t 0 var; } ; echo $? 1 jinx$ echo value | { read -t 0 var; } ; echo $? 1 jinx$ echo value | { read -t 0 var; } ; echo $? 0 jinx$ echo value | { read -t 0 var; } ; echo $? 1 jinx$ echo value | { read -t 0 var; } ; echo $? 0 jinx$ echo value | { read -t 0 var; } ; echo $? 1 jinx$ echo value | { read -t 0 var; } ; echo $? 0 It is all just a race condition - there's nothing specifying which side of the pipe starts running first. kre