我有以下 ksh 脚本,其中 $an_unset_var 是首次使用的未设置变量:
read -A arr <<< "$an_unset var"
echo ${#an_unset_var}
echo ${#arr[*]}
执行后,我得到以下输出:
0
1
为什么使用 read 命令将未设置的变量读入数组会在数组中输入一个空元素?为什么这个空元素会被视为数组的有效可数元素?
重要编辑:
脚本第一行缺少下划线。
read -A arr <<< "$an_unset_var"
$an_unset_var 是变量。
答案1
什么让你认为数组中有一个空元素?
% mksh
$ read -A arr <<< "$broda $brode $brodi mlatu"
$ print -l $arr
mlatu
$
那是mksh R56c
;arr
包含一个元素,这就是为什么${#arr[*]}
返回计数1
...