Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Equivalent of set -- *(DN) in sh
- X-seq: zsh-users 19744
- From: Eric Cook <llua@xxxxxxx>
- To: zsh-users@xxxxxxx
- Subject: Re: Equivalent of set -- *(DN) in sh
- Date: Sun, 18 Jan 2015 15:46:06 -0500
- In-reply-to: <CADdV=MvMtwYczr82GeYkmVwTFCKgFcbgYS71XdnHZN_JqFqzTg@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: <CADdV=MvMtwYczr82GeYkmVwTFCKgFcbgYS71XdnHZN_JqFqzTg@mail.gmail.com>
On 01/18/2015 01:28 PM, Nikolai Weibull wrote:
> Hi!
>
> Is there any way to get the equivalent of Zsh’s
>
> set -- *(DN)
>
> in sh? Most important here would be NULL_GLOB, as, by default, sh
> simply leaves the * if there are no files to match.
>
> Thanks!
match() {
test "$#" -gt 2 && return
test -e "$1" && return
return 1
}
set --
for pat in '.[^.]*' '*'; do # *(DN) ignores . and ..
if match $pat; then
set -- "$@" $pat
fi
done
unset pat
test "$#" -gt 0 && printf '%s\n' "$@"
Messages sorted by:
Reverse Date,
Date,
Thread,
Author