ksh - 使用 read 命令将未设置的变量读入数组

ksh - 使用 read 命令将未设置的变量读入数组

我有以下 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 R56carr包含一个元素,这就是为什么${#arr[*]}返回计数1...

相关内容