bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RFC: turn off word splitting for vars but keep for read


From: Pierre Gaston
Subject: Re: RFC: turn off word splitting for vars but keep for read
Date: Fri, 22 Nov 2013 17:07:23 +0200

On Fri, Nov 22, 2013 at 8:00 AM, Aleksey Midenkov <address@hidden> wrote:

> Since word splitting in vars is used not more frequently than never,
> protecting all vars in scripts with double quotes is quite unpleasant
> thing. Therefore, I want exactly this behavior always to be in my
> scripts:
>
> $ IFS=""
> $ f() { echo $1; }; x="a b c"; f $x
> a b c
>
> But, IFS influences `read`, which of course benefits from word
> splitting. In light of that conflict, I propose two possible
> solutions:
>
> 1: shopt -s unsplit_vars
>
> which will turn off word splitting for var expansion.
>
> or 2: new IFS2 var that will override IFS for `read` (i.e. `read` will
> use IFS2 when IFS is unset).
>

Your code is still not safe, you would need set -f to disable globing too.

it's easy enough to set IFS locally for read, just set it in its
environment like
IFS=' ' read a b <<"hello world"


reply via email to

[Prev in Thread] Current Thread [Next in Thread]