Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: how do I get the last argument from a list of arguments?
- X-seq: zsh-users 18931
- From: Kurtis Rader <krader@xxxxxxxxxxxxx>
- To: TJ Luoma <luomat@xxxxxxxxx>
- Subject: Re: how do I get the last argument from a list of arguments?
- Date: Mon, 7 Jul 2014 14:33:05 -0700
- Cc: Zsh-Users List <zsh-users@xxxxxxx>
- In-reply-to: <CADjGqHuALx7Ue3Ei3s7XvT_pHWxECo2rt=BNegPO5Fwcuge2LQ@mail.gmail.com>
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
- References: <CADjGqHuALx7Ue3Ei3s7XvT_pHWxECo2rt=BNegPO5Fwcuge2LQ@mail.gmail.com>
See the description of the *${name:offset} *syntax in *man zshexpn*. Note
the space between the colon and minus-sign is required to disambiguate it
from the "var:-default" syntax.
function lastarg() {
print "${@[-1]}"
print "${@: -1}"
}
lastarg 1 2 3
On Mon, Jul 7, 2014 at 2:06 PM, TJ Luoma <luomat@xxxxxxxxx> wrote:
> I’m trying to learn better ways of dealing with arguments given to a
> function, because I am sure that I am not doing it the most efficient
> way.
>
> For example, if I want to process a series of args, I usually use a
> loop like this:
>
> for FOO in "$@"
> do
> case "$FOO" in
> -t|--to)
> shift
> TO="$1"
> shift
> ;;
>
> -v|--verbose)
> VERBOSE='yes'
> shift
> ;;
>
> -*|--*)
> echo " $NAME [warning]: Don't know what to do with arg: $1"
> shift
> ;;
>
> esac
>
> done # for args
>
> That has worked OK for what I've needed to do, but now I'm trying to
> create two functions which I will use in place of 'cp' and 'mv' and I
> need to be able to find the _last_ argument (the destination) before I
> process all the rest of the args.
>
> The only way that I can think of to get the last argument is to do
> something like this
>
> LAST=`echo "$@" | awk '{print $NF}'`
>
> but that made me wonder if there wasn’t a better way.
>
> Note that this does not need to be 'portable' at all -- I will happily
> use any zsh-specific features which may exist, as long as it works in
> 5.0.2 (which is what comes with OS X).
>
> Thanks!
>
> TjL
>
--
Kurtis Rader
Caretaker of the exceptional canines Junior and Hank
Messages sorted by:
Reverse Date,
Date,
Thread,
Author