[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Query regarding ${parameter:-word} usage

From: Matthew Woehlke
Subject: Re: Query regarding ${parameter:-word} usage
Date: Wed, 23 Dec 2009 19:26:48 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20090825 Fedora/ Thunderbird/ Mnenhy/

Mun wrote:
I am moving from ksh93 to bash and have a question regarding the usage
of ${parameter:-word} parameter expansion.

In ksh, I use ${*:-.} as an argument to commands.  For example:

    function ll
       ls --color -Flv ${*:-.}

This technique passes '.' as an arg to 'ls' if I didn't pass any args on
the command line (as I'm sure you all already know).  But this does not
work with bash; nor have I been able to come up with a technique that
accomplishes the same thing.  My only workaround so far is to put an
'if' loop around the 'ls' that tests $# and takes the appropriate branch
depending on the number of args (i.e., 0 or non-zero).

Any suggestions would be welcomed.  Thanks in advance.

Not sure why the above doesn't work, though you probably mean to use "$@" and not $* (presence/absence of ""s is intentional). This seems to work for me:

  function ll
    ls --color -Flv "${@:-.}"

Please do not quote my e-mail address unobfuscated in message bodies.
"It's not easy for [Microsoft] to accept [competing fairly]"
  -- Dave Heiner (a Microsoft VP, paraphrased)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]