BASH: пытается прочитать в файле, но он получает только первую строку - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь прочитать файл в bash и сохранить переменные для последующего использования, формат для файлов следующий:

сокращение имени

количество цены maxQuantitiy

itemDescription

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

if [ -r data/$fileName.file ]; then
    read name abbreviation < data/$fileName.file
    read price quantity maxQuantity < data/$fileName.file
    read itemDescription < data/$fileName.file
fi

и когда я пытаюсь повторить цену или количество, оно повторяет название и аббревиатуру.

1 Ответ

0 голосов
/ 24 февраля 2020

read читает первую строку. Когда вы делаете другое перенаправление, оно не привязывается к предыдущему, поэтому снова читает первую строку. Вам нужно использовать перенаправление one для всех операций чтения:

if [ -r data/$fileName.file ]; then
    {
        read name abbreviation
        read price quantity maxQuantity
        read itemDescription
    } < data/$fileName.file
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...