Sté*_*las 18
对于标量变量,在标准 (POSIX)sh
语法中:
if [ "${var+set}" != set ]; then
echo var is not set
fi
Run Code Online (Sandbox Code Playgroud)
或者更高级但不太清晰的东西,比如
if [ -z "${var++}" ]; then
echo var is unset
fi
Run Code Online (Sandbox Code Playgroud)
或者:
if ${var+false}; then
echo var is unset
fi
Run Code Online (Sandbox Code Playgroud)
对于数组变量(不是数组是可移植的), inzsh
或yash
将返回 unset ,除非为数组分配了任何列表,包括空列表,而在 bash 或 ksh 中,除非设置了索引 0 的元素,否则将返回unset。关联数组也是如此(对于键“0”)。
请注意,除了 in zsh
(当不在sh
仿真中时),export var
或者readonly var
声明了变量但没有给它任何值,因此除此之外的shellzsh
将报告var
为unset
那里(除非var
在调用export
/之前已分配了一个值readonly
)。
归档时间: |
|
查看次数: |
3614 次 |
最近记录: |