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

263
Neil

У меня есть следующий скрипт 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 является переменной.

0
Также обсуждается на [unix & linux] (https://unix.stackexchange.com/q/439800/4667) glenn jackman 6 лет назад 0

1 ответ на вопрос

0
thrig

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

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

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

Извините, это моя ошибка. $ an_unset_variable является одной переменной. Должным образом обновлено. Neil 6 лет назад 0

Похожие вопросы