Op 28-10-16 om 15:00 schreef Chet Ramey: > On 10/25/16 12:40 AM, Martijn Dekker wrote: >> Try simply testing the exit status of 'typeset -p' or 'declare -p'. If >> the variable is not declared, it exits unsuccessfully. >> >> if typeset -p "$var" >/dev/null 2>&1 && [[ ! -v $var ]] >> then ... >> >> As far as I can tell, this is not documented in 'help' or in the info >> page, by the way. Perhaps it should be. > > It's documented. The man page, for instance, says: > > "The return value is 0 unless ... one of the names is not a valid shell > variable name" > > which handles both the "not correctly formed" and "not found" cases.
To me that seems like a far-fetched interpretation. The way I read it, if a variable is not declared, that does not imply its name is not valid. An invalid name would mean it is impossible to declare it. I think adding ", the variable is not declared" would prevent misunderstandings. - M.