У меня есть следующий скрипт ksh, где $ an_unset_var - неустановленная переменная, которая используется впервые:

read -A arr <<< "$an_unset var"
echo ${#an_unset_var}
echo ${#arr[*]}

Выполняя который, я получаю следующий вывод:

0
1

Почему при чтении неустановленной переменной в массив с помощью команды чтения в массиве появляется пустой элемент? Почему этот пустой элемент считается допустимым счетным элементом массива?

Важное редактирование:

Отсутствует подчеркивание в первой строке сценария.

read -A arr <<< "$an_unset_var"

$ an_unset_var является переменной.

1 ответ1

0

Что заставляет вас думать, что в массиве есть пустой элемент?

% mksh
$ read -A arr <<< "$broda $brode $brodi mlatu"
$ print -l $arr
mlatu
$ 

это с mksh R56c ; arr содержит единственный элемент, поэтому ${#arr[*]} возвращает счетчик 1 ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .