bug-bash
[Top][All Lists]
Advanced

[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:1.8.1.23) Gecko/20090825 Fedora/2.0.0.23-1.fc10 Thunderbird/2.0.0.23 Mnenhy/0.7.5.0

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 "${@:-.}"
  }

--
Matthew
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]