On Fri, Mar 16, 2018 at 02:59:53PM -0400, Greg Wooledge wrote:
> On Fri, Mar 16, 2018 at 02:06:09PM -0400, Boruch Baum wrote:
> >    echo $IFS |xxd
> >    00000000: 0a
> 
> This command will never reveal any information, period.

I was slightly mistaken there.  It actually reveals the number of
non-IFS-whitespace characters in IFS (sometimes).  You can calculate
this by adding 1 to the number of spaces that echo puts in between the
null arguments that it receives.

Unless, of course, echo prints zero space characters -- in which case
you can't tell whether it received zero arguments, or one null
argument, as the resulting output is the same in both cases.

https://mywiki.wooledge.org/Quotes

wooledg:~$ IFS=qqqq
wooledg:~$ args $IFS
4 args: <> <> <> <>
wooledg:~$ echo $IFS | od -An -tx1
 20 20 20 0a

echo wrote three space characters, so we can conclude that IFS had 4
non-IFS-whitespace characters.  We cannot conclude anything more,
unless I've missed another thing.

Reply via email to