There is an additional problem with IFS and the command read Suppose I have variable $line with a string "a,b,c,d" IFS=',' read -r x1 <<< $line Bash will assign the whole line to x1 echo $x1 line="a,b,c,d";IFS=',' read -r x1 <<< $line;echo $x1; a,b,c,d but if I use two variables line="a,b,c,d";IFS=',' read -r x1 x2 <<< $line;echo "$x1 ---> $x2"; a ---> b,c,d this is incorrect. If IFS=",", then a read -r statement must assign the first value to the single variable, and disregard the rest. and so on, with (n) variables. The compelling reason is: I may not know how many values are stored in the comma-separated list. GNU AWK, for instance, acts responsibly in the same exact situation: line="a,b,c,d";awk -F, '{print $1}' <<< $line a We need to fix this
On Sat, Apr 1, 2023, 6:11 PM Mike Jonkmans <bash...@jonkmans.nl> wrote: > On Sat, Apr 01, 2023 at 03:27:47PM -0400, Lawrence Velázquez wrote: > > On Fri, Mar 31, 2023, at 2:10 PM, Chet Ramey wrote: > > > kre filed an interpretation request to get the language cleaned up. > > > > For those who might be interested: > > > > https://austingroupbugs.net/view.php?id=1649 > > Thanks for the link. > > And well done, kre! > > -- > Regards, Mike Jonkmans > >