Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #11610
| Path | csiph.com!xmission!news.glorb.com!usenet.stanford.edu!not-for-mail |
|---|---|
| From | Linda Walsh <bash@tlinx.org> |
| Newsgroups | gnu.bash.bug |
| Subject | Re: read and env variables + POSIX => SEGFAULT |
| Date | Sat, 10 Oct 2015 20:01:05 -0700 |
| Lines | 90 |
| Approved | bug-bash@gnu.org |
| Message-ID | <mailman.74.1444532476.7904.bug-bash@gnu.org> (permalink) |
| References | <CAAZkfoJuwe4o1rPQrfB-vxqeAaBX-=9NPWgv2uiOPdHq7L8g+g@mail.gmail.com> |
| NNTP-Posting-Host | lists.gnu.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Trace | usenet.stanford.edu 1444532477 7171 208.118.235.17 (11 Oct 2015 03:01:17 GMT) |
| X-Complaints-To | action@cs.stanford.edu |
| To | isabella parakiss <izaberina@gmail.com>, bug-bash <bug-bash@gnu.org> |
| Envelope-to | bug-bash@gnu.org |
| User-Agent | Thunderbird |
| In-Reply-To | <CAAZkfoJuwe4o1rPQrfB-vxqeAaBX-=9NPWgv2uiOPdHq7L8g+g@mail.gmail.com> |
| X-detected-operating-system | by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] |
| X-Received-From | 173.164.175.65 |
| X-BeenThere | bug-bash@gnu.org |
| X-Mailman-Version | 2.1.14 |
| Precedence | list |
| List-Id | Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org> |
| List-Unsubscribe | <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe> |
| List-Archive | <http://lists.gnu.org/archive/html/bug-bash> |
| List-Post | <mailto:bug-bash@gnu.org> |
| List-Help | <mailto:bug-bash-request@gnu.org?subject=help> |
| List-Subscribe | <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe> |
| Xref | csiph.com gnu.bash.bug:11610 |
Show key headers only | View raw
isabella parakiss wrote: > $ a= read a <<< x # this creates a variable in the current shell > $ declare -p a > declare -- a="x" > > $ b= mapfile b <<< x # this doesn't > $ declare -p b > bash: declare: b: not found ---- Very good point... more interesting is adding posix mode to the mix: # first verify a and b are not defined > set -o posix > declare -p a bash: declare: a: not found > declare -p b bash: declare: b: not found > a= read a <<< x;echo $? 0 > declare -p a declare -- a="x" # the manpage claims "one line is read from [the input], and the result # is split by words and assigns 1st word to 1st var and so forth, but # apparently the reading of 1 line is optional -- though this is consistent # with the fact that read can be told to read some number of characters and # return when the limit is reached. So technically, read doesn't "read one line", # but read whatever is on 'input' up to 1 line. (DOC clarification?) # assigning & trying to read 2 vars but only having content for 1: > a= b= read a b <<< x > declare -p a b declare -- a="x" declare -- b="" # this is odd: 2vars with content for 2: > unset a b > a= b= read a b <<< x y > declare -p a b declare -- a="x" declare -- b="" # -- where did "y" go? # doing the same thing posix mode (as it disallows various # vague or unclear constructs) yields mostly the same results # except for your mapfile case (didn't try any further testing of # variations because of the results (2 flavors)): > b= mapfile b <<< x; echo $? 0 > declare -p b Segmentation fault (core dumped) # another example of bash not returning consistent errno results # ( |;>| ducking while smirking) ok, I vote for disallowing this # type of result return. The 2nd flavor: > b= mapfile b a <<< x > declare -p a b bash: declare: a: not found Segmentation fault (core dumped) # odd, this time it dumped on printing 'b'; still not so great # status returning... # hmmm... I'm guess fixing these to not return segfaults won't # get me any better status returns in 'type -P' # vitals: > $0 --version GNU bash, version 4.3.39(1)-release (x86_64-unknown-linux-gnu) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > whence bash bash is /bin/bash Ishtar:/Torrents/Library/2014Q1> ldd /bin/bash linux-vdso.so.1 (0x00007fff396eb000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003001400000) libc.so.6 => /lib64/libc.so.6 (0x0000003000c00000) /lib64/ld-linux-x86-64.so.2 (0x000055da52cbc000) > uname -a Linux Ishtar 4.1.0-Isht-Van #2 SMP PREEMPT Tue Jun 23 07:52:09 PDT 2015 x86_64 x86_64 x86_64 GNU/Linux
Back to gnu.bash.bug | Previous | Next | Find similar
Re: read and env variables + POSIX => SEGFAULT Linda Walsh <bash@tlinx.org> - 2015-10-10 20:01 -0700
csiph-web