Op 27-12-18 om 19:22 schreef Chet Ramey:
On 12/26/18 10:49 PM, Peng Yu wrote:

Although [[ -z ${1+s} ]]  and (($#)) works for testing if $1 is set,
neither of them are uniformly better performance wise. In this case,
should [[ -v 1 ]] be supported?

So you're saying that neither of the existing options performs better
than the other, though they both perform well, so we should add some
new capability just because? That's a particularly poor argument.

Consistency might be a better argument. If [[ -v foo ]] is equivalent to [[ -n ${foo+s} ]] for variables (with the advantage that you don't need 'eval' to handle arbitrary values of 'foo'), then perhaps it's not unreasonable to expect [[ -v 1 ]] to be equivalent to [[ -n ${1+s} ]].

FWIW, zsh and mksh do support this; ksh93 doesn't.

- M.

Reply via email to