4 метода чтения нескольких строк пользовательского ввода в Bash

Чтобы прочитать несколько строк от пользователя в Bash, вы можете использовать несколько методов. Вот несколько примеров:

Метод 1: использование цикла while

echo "Enter multiple lines (press Ctrl+D to exit):"
while IFS= read -r line; do
    lines+=("$line")
done

В этом методе пользователь может ввести несколько строк, и скрипт будет читать их построчно, пока пользователь не сигнализирует об окончании, нажав Ctrl+D. Строки хранятся в массиве под названием lines.

Метод 2: использование документа здесь

read -r -d '' lines << 'EOF'
This is line 1.
This is line 2.
And this is line 3.
EOF

В этом методе строки предоставляются непосредственно в сценарии с использованием документа Here. Строки присваиваются переменной lines, а разделитель EOFуказывает на конец ввода.

Метод 3: использование замены команд

read -r -d '' lines <<< "$(cat)"

С помощью этого метода пользователь может ввести несколько строк, а команда catсчитывает введенные данные. Затем строки присваиваются переменной linesс помощью подстановки команд.

Метод 4. Использование временного файла

tempfile=$(mktemp)
echo "Enter multiple lines (press Ctrl+D to exit):"
cat > "$tempfile"
lines=$(<"$tempfile")
rm "$tempfile"

В этом методе временный файл создается с помощью mktemp, а введенные пользователем данные сохраняются в этот файл с помощью cat. Затем содержимое файла присваивается переменной lines. Наконец, временный файл удаляется с помощью rm.