[pacman-dev] makepkg bash-3.2 issue
Hi, Can anyone give me a fix for this: local optdepends_list eval $(awk '/^[[:space:]]*optdepends=/,/\)/' "$BUILDFILE" | sed "s/optdepends=/optdepends_list+=/") In bash-3.2, this gives optdepends_list with "" as the first item in the array. It appears that declaring a local variable in bash-3.2 causes it to be given a blank value: bash-4.1
declare optdepends_list echo ${#optdepends_list[@]} 0
bash-3.2
declare optdepends_list echo ${#optdepends_list[@]} 1
Anyone know how to work around this? Allan
On Wed, Feb 2, 2011 at 6:33 PM, Allan McRae <allan@archlinux.org> wrote:
Hi,
Can anyone give me a fix for this:
local optdepends_list eval $(awk '/^[[:space:]]*optdepends=/,/\)/' "$BUILDFILE" | sed "s/optdepends=/optdepends_list+=/")
In bash-3.2, this gives optdepends_list with "" as the first item in the array. It appears that declaring a local variable in bash-3.2 causes it to be given a blank value:
bash-4.1
declare optdepends_list echo ${#optdepends_list[@]} 0
bash-3.2
declare optdepends_list echo ${#optdepends_list[@]} 1
Anyone know how to work around this?
Did you try `declare -a`? -Dan
On Thu, Feb 03, 2011 at 10:33:45AM +1000, Allan McRae wrote:
Hi,
Can anyone give me a fix for this:
local optdepends_list eval $(awk '/^[[:space:]]*optdepends=/,/\)/' "$BUILDFILE" | sed "s/optdepends=/optdepends_list+=/")
In bash-3.2, this gives optdepends_list with "" as the first item in the array. It appears that declaring a local variable in bash-3.2 causes it to be given a blank value:
bash-4.1
declare optdepends_list echo ${#optdepends_list[@]} 0
bash-3.2
declare optdepends_list echo ${#optdepends_list[@]} 1
Anyone know how to work around this?
Allan
Sure, just initialize the array as empty. $ declare foo=() $ echo ${#foo[@]} dave
On 03/02/11 10:44, Dave Reisner wrote:
On Thu, Feb 03, 2011 at 10:33:45AM +1000, Allan McRae wrote:
Hi,
Can anyone give me a fix for this:
local optdepends_list eval $(awk '/^[[:space:]]*optdepends=/,/\)/' "$BUILDFILE" | sed "s/optdepends=/optdepends_list+=/")
In bash-3.2, this gives optdepends_list with "" as the first item in the array. It appears that declaring a local variable in bash-3.2 causes it to be given a blank value:
bash-4.1
declare optdepends_list echo ${#optdepends_list[@]} 0
bash-3.2
declare optdepends_list echo ${#optdepends_list[@]} 1
Anyone know how to work around this?
Allan
Sure, just initialize the array as empty.
$ declare foo=() $ echo ${#foo[@]}
Of course... It all seems so simple now! Thanks, Allan
participants (3)
-
Allan McRae
-
Dan McGee
-
Dave Reisner