Bash while / read -d цикл упускает последний элемент [duplicate]

Если вы загружаете 32-разрядную версию вашей DLL с 64-разрядной JRE, у вас может возникнуть проблема. Это был мой случай.

2
задан capser 3 December 2013 в 21:07
поделиться

2 ответа

Примечание:

21545a21548
> yheebash-3.00$
      ^---- no line break

Ваш файл не заканчивается с разрывом строки.

5
ответ дан Marc B 22 August 2018 в 06:59
поделиться
  • 1
    yo получил это - выход управляется cron - я думаю, я добавлю команду эха в последнюю строку. – capser 3 December 2013 в 21:15
  • 2
    Вы также можете сделать цикл while для окончательной строки без конца, используя while read line || [ -n "$line" ]; do (см. этот предыдущий ответ ). – Gordon Davisson 4 December 2013 в 19:15

Если вам интересно , почему? , это может удовлетворить ваше любопытство .

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

while IFS= read -r line || [ -n "$line" ]; do
  echo "$line"
done <file

Или это:

while IFS= read -r line; do
  echo "$line"
done < <(grep "" file)

Подробнее:

  1. https://stackoverflow.com/a/31397497/3744681
  2. https: / /stackoverflow.com/a/31398490/3744681
1
ответ дан Community 22 August 2018 в 06:59
поделиться
Другие вопросы по тегам:

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