in reply to Re: Running Under Some Shell
in thread Running Under Some Shell
As I see ${1+"$@"} can be simplified to "$@". The only difference is that in the first case only $1 will be checked whether it is set.Yes, that's my idea as well. If there's at least one argument, $1 is set and ${1+"$@"} first expands to "$@" which then expands to $1 $2 $3 .... If $1 isn't set ${1+"$@"} expands to nothing. In either case, it's the same as "$@". There might be some shell somewhere that makes a difference, but according my reading of a manual found on the Interwebs, even in the Bourne Shell on System 7 both ${1+"$@"} and "$@" are identical. The POSIX standard also says that in the absence of positional parameters, "$@" expands to nothing.
I'm not really knowledgeable in the c shell, so I can't explain now the gubbin designed for sh and csh at the same time.I'd be surprised if the gubbin actually worked on csh. AFAIK, it doesn't do ${foo+bar} style parameter expansion (but I don't have a csh laying around to try it on).
Perhaps the ${1+"$@"} is just a piece of cargo cult. Noone is really sure if it's going to break on some system somewhere, and just leaves it as is, instead of replacing it with "$@". It's not that there's a huge savings.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Running Under Some Shell
by rubasov (Friar) on Feb 25, 2010 at 11:18 UTC | |
by JavaFan (Canon) on Feb 25, 2010 at 12:44 UTC | |
by dupuy (Initiate) on Jun 29, 2013 at 22:11 UTC |