массив bash не обрабатывается должным образом, когда файл карты используется для чтения значений

В Linux 18.2 обнаружена ошибка

Menu> System Settings> Desktop>
"Show desktop icons in all monitors"
Close

Теперь щелкните правой кнопкой мыши пустую часть экрана

Desktop
Turn off auto arrange
Turn off align to grid

ваши значки можно свободно перемещать

1
03.12.2019, 17:20
2 ответа

Команда mapfileчитает строку файла -мудро, т.е. ожидает, что они будут разделены \n. Поскольку пространство данных -разделено, эта (единственная строка )в вашем файле воспринимается как один единственный токен и, следовательно, назначается первой позиции массива. Попробуйте изменить входной файл, как в

1
26
32

...

68

Так и должно быть.

2
27.01.2020, 23:22

Если все ваши данные находятся в одной строке файла, разделенной пробелом -, сделайте следующее:

read -r -a arrayname < filename

Ключ -a здесь :чтение строки из файла, разделение ее в соответствии с $IFS и сохранение полей в массиве.

Как было указано, mapfile разбивает файл на строк , а не на слов .

1
27.01.2020, 23:22

Теги

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