bug-bash
[Top][All Lists]
Advanced

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

Re: Using unset to destroy array elements doesn't work with 'nullglob' s


From: Chet Ramey
Subject: Re: Using unset to destroy array elements doesn't work with 'nullglob' set
Date: Fri, 05 Jun 2009 14:29:33 -0400
User-agent: Thunderbird 2.0.0.21 (Macintosh/20090302)

Francis Moreau wrote:
> Hello,
> 
> My version of bash is "GNU bash, version 3.2.33(1)-release (x86_64-
> redhat-linux-gnu)" running on a fedora 9.
> 
> Here's is a small script to show the bug:
> 
> #!/bin/bash
> 
> #shopt -s nullglob
> 
> foo[0]=0
> unset foo[0]
> echo ${foo[@]}
> 
> When shopt line is commented then the element at index 0 is destroyed
> and the echo doesn't output anything. However is a uncomment the shopt
> line the element at index 0 is not destroyed anymore and the echo
> output "0".

This is why the man page says:

The  unset  builtin  is  used to destroy arrays.  unset name[subscript]
destroys the array element at index subscript.  Care must be  taken  to
avoid unwanted side effects caused by filename generation.

In this case, you should quote the argument if you don't want globbing
to potentially alter it.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer

Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/




reply via email to

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