[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unset array doesn't work
From: |
Clark Wang |
Subject: |
Re: Unset array doesn't work |
Date: |
Mon, 12 Feb 2018 16:03:20 +0800 |
On Mon, Feb 12, 2018 at 3:23 PM, Nikolai Kondrashov <spbnick@gmail.com>
wrote:
>
>> Take a look at these links:
>>
>> - http://wiki.bash-hackers.org/commands/builtin/unset
>> - http://www.fvue.nl/wiki/Bash:_Passing_variables_by_reference
>>
>
> Thanks, Clark! However, I find it difficult to follow the explanation at
> the
> first link and even more difficult to connect it to this case. So I'm not
> sure
> I'm getting it right. Could you maybe explain what exactly happens in the
> code
> I posted?
>
Your code:
inner() {
unset res
if [[ $1 == "set" ]]; then
res[0]="X"
res[1]="Y"
fi
}
outer() {
local res=
inner "$1"
echo "res: ${res[@]}"
}
The "unset" in inner() actually unsets the "res" in outer() and the
following assignment (to res[0] and res[1]) is actually assigning to the
global var "res". And in outer(), after calling inner(), its local "res" is
gone and it also referencing to the global var "res".
With 2 "unset" commands, even the global "res" is unset.
- Unset array doesn't work, Nikolai Kondrashov, 2018/02/11
- Re: Unset array doesn't work, Chet Ramey, 2018/02/12
- Re: Unset array doesn't work, Nikolai Kondrashov, 2018/02/12
- Re: Unset array doesn't work, Robert Elz, 2018/02/26
- Re: Unset array doesn't work, Clint Hepner, 2018/02/26
- Re: Unset array doesn't work, Greg Wooledge, 2018/02/26
- Re: Unset array doesn't work, Clark Wang, 2018/02/26
- Re: Unset array doesn't work, Robert Elz, 2018/02/26
- Re: Unset array doesn't work, Chet Ramey, 2018/02/27
- Re: Unset array doesn't work, Robert Elz, 2018/02/26