当前位置: 技术问答>linux和unix
shell脚本的一个问题,if [ -z "${_xarray[${#_xarray[@]}]}" ]
来源: 互联网 发布时间:2017-03-20
本文导语: # determine whether arrays are zero-based (bash) or one-based (zsh) _xarray=(a b c) if [ -z "${_xarray[${#_xarray[@]}]}" ] then _arrayoffset=1 else _arrayoffset=0 fi unset _xarray 这个里面的判断句如何理解? if [ -z "${_xarray[${#_xar...
# determine whether arrays are zero-based (bash) or one-based (zsh)
_xarray=(a b c)
if [ -z "${_xarray[${#_xarray[@]}]}" ]
then
_arrayoffset=1
else
_arrayoffset=0
fi
unset _xarray
这个里面的判断句如何理解? if [ -z "${_xarray[${#_xarray[@]}]}" ]
_xarray=(a b c)
if [ -z "${_xarray[${#_xarray[@]}]}" ]
then
_arrayoffset=1
else
_arrayoffset=0
fi
unset _xarray
这个里面的判断句如何理解? if [ -z "${_xarray[${#_xarray[@]}]}" ]
|
_xarray=(a b c)
数组包括3个元素a,b,c。$[_xarray[0]]=a,$[_xarray[1]]=b,$[_xarray[2]]=c
${#_xarray[@]}求数组个数,结果为3
所以${_xarray[${#_xarray[@]}]}为${_xarray[3]}
由于数组第4个元素下标为3,不存在即空字符串所以
if [ -z "${_xarray[${#_xarray[@]}]}" ]成立
_arrayoffset=1
数组包括3个元素a,b,c。$[_xarray[0]]=a,$[_xarray[1]]=b,$[_xarray[2]]=c
${#_xarray[@]}求数组个数,结果为3
所以${_xarray[${#_xarray[@]}]}为${_xarray[3]}
由于数组第4个元素下标为3,不存在即空字符串所以
if [ -z "${_xarray[${#_xarray[@]}]}" ]成立
_arrayoffset=1
|
这个表达式${#_xarray[@]}是获取_xarray当中的元素总数的特殊操作。