Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Equivalent of set -- *(DN) in sh



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