Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: aliases not getting expanded inside functions?
- X-seq: zsh-users 5693
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxx>
- To: zsh-users@xxxxxxxxxx
- Subject: Re: aliases not getting expanded inside functions?
- Date: Mon, 13 Jan 2003 18:48:27 +0000
- In-reply-to: <15906.65149.206767.381472@xxxxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <15893.44217.393956.262362@xxxxxxxxxxxxxx> <20030103164552.A28966@xxxxxxxxxxx> <15893.50996.646711.184945@xxxxxxxxxxxxxx> <20030103184455.A5692@xxxxxxxxxxx> <15893.53780.524763.695176@xxxxxxxxxxxxxx> <20030103185407.GA11836@xxxxxxxx> <15897.15986.562636.628562@xxxxxxxxxxxxxx> <1030106125404.ZM4660@xxxxxxxxxxxxxxxxxxxxxxx> <15903.36155.716460.639226@xxxxxxxxxxxxxx> <1030111184020.ZM11764@xxxxxxxxxxxxxxxxxxxxxxx> <15906.65149.206767.381472@xxxxxxxxxxxxxx>
On Jan 13, 3:59pm, Carlos Carvalho wrote:
}
} > fields=( "${(@s:;:)dataline}" ) # Answers your other question
}
} Doesn't work for me:
Hrm. I was sure I'd tried it, but on your input I get the same result
you do. Well, there's always:
IFS=';' eval 'fields=( $=dataline )'
However, it occurs to me that with dataline='...;";";...' -- that is, a
quoted semicolon in the input data -- there's no quick solution that's
going to do exactly what you need.
} > while IFS=';' read rate capital etc.
}
} Yes, I didn't do it because I had hope to one day do a block move
} via arrays. Also, reading to a parameter first makes it easier to do
} some pre-processing like quote removal, otherwise I have to do it
} field by field after reading.
[...]
} > fields[capital]=$((fields[capital]+fields[interest]))
}
} This makes the program more cumbersome to write and read because all
} variables become quite long-named...
So don't name the array "fields", name it "f" or some such. Three extra
characters (e.g. $f[capital] instead of $capital) for a whole lot less
complexity elsewhere. And quote removal may be as easy as:
f=( ${${(kv)f#\"}%\"} )
(Whether it's actually that easy depends on your input data, e.g., you
might also need to convert \" to ", but I think `read' will have done
that for you already.)
Messages sorted by:
Reverse Date,
Date,
Thread,
Author