Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Problem with arrays -- "unknown file attribute"
- X-seq: zsh-users 13641
- From: Stephane Chazelas <Stephane_Chazelas@xxxxxxxx>
- To: "Benjamin R. Haskell" <zsh@xxxxxxxxxx>
- Subject: Re: Problem with arrays -- "unknown file attribute"
- Date: Mon, 5 Jan 2009 09:24:03 +0000
- Cc: Zsh Users <zsh-users@xxxxxxxxxx>
- In-reply-to: <alpine.LNX.2.00.0901050308270.17470@xxxxxxxxxxxxxxx>
- Mail-followup-to: "Benjamin R. Haskell" <zsh@xxxxxxxxxx>, Zsh Users <zsh-users@xxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <b11ea23c0901050004h4f1825egc01d39c1f74c0ef0@xxxxxxxxxxxxxx> <alpine.LNX.2.00.0901050308270.17470@xxxxxxxxxxxxxxx>
On Mon, Jan 05, 2009 at 03:27:24AM -0500, Benjamin R. Haskell wrote:
> On Mon, 5 Jan 2009, Webb Sprague wrote:
>
>> Hi zsh list again,
>>
>> I have a problem converting a whitespace string to an array. See XXX in
>> code below (which takes the list of tables generated by sqlite and tries
>> to parse and iterate over them). Everything I try to go from text to
>> array either doesn't convert to an array or gives some funky error. Please
>> help, before I revert to my old bash ways !!
>>
>> pop-colnames () {
>> IFS=
>> setopt errreturn
>> TABS=( $(sqlite3 $DB .tables) ) # XXX
>
> The following should work:
>
> ...
> TABS=( ${=$(sqlite3 $DB .tables)} )
> for TAB in $TABS ; do
> ...
>
> ${=...} turns on SH_WORD_SPLIT. And, I think the parentheses around $TABS
> was the cause of the odd error message.
[...]
word splitting is only on for command substitution, it only for
parameter expansion that you need = to enable it.
Here, you want:
IFS=$'\n'
TABS=($(sqlite3 $DB .tables))
or
TABS=(${(f)"$(sqlite3 $DB .tables)"})
--
Stéphane
Messages sorted by:
Reverse Date,
Date,
Thread,
Author