[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ${param+x} ?
From: |
Greg Wooledge |
Subject: |
Re: ${param+x} ? |
Date: |
Tue, 19 Dec 2023 07:18:27 -0500 |
On Tue, Dec 19, 2023 at 12:12:46PM +0100, lacsaP Patatetom wrote:
> so, what's the point of this test `[ -z ${param+x} ]`, which will always be
> true ?
That expansion is incorrect. What you *want* is [ -n "${param+x}" ]
or simply [ "${param+x}" ].
If 'param' is unset, "${param+x}" expands to the empty string, and
you get [ -n "" ] which is false.
If 'param' is set to any value, including the empty string, "${param+x}"
expands to x, and you get [ -n x ] which is true.
See also <https://mywiki.wooledge.org/BashFAQ/083>.