Одним із альтернативних способів цього є просто перенаправлення стандартного вводу у ваш файл, де ви маєте весь вхід користувача у тому порядку, якого він очікує програма. Наприклад, з програмою (називається script.sh
)
#!/bin/bash
echo "Enter your name:"
read name
echo "...and now your age:"
read age
# example of how to use the values now stored in variables $name and $age
echo "Hello $name. You're $age years old, right?"
і вхідний файл (називається input.in
)
Tomas
26
Ви можете запустити це з терміналу одним із наступних двох способів:
$ cat input.in | ./script.sh
$ ./script.sh < input.in
і це було б рівнозначно просто запуску сценарію та введенню даних вручну - він надрукував би рядок "Привіт Томаш. Вам 26 років, правда?".
Як Radu Rădeanu має вже запропонував , ви можете використовувати cat
всередині сценарію , щоб прочитати вміст файлу в avariable - в цьому випадку, вам потрібно кожен файл містить тільки один рядок, тільки значення , яке потрібно для цієї конкретної змінної. У наведеному вище прикладі, ви б розділити вхідний файл на один з ім'ям (скажімо, name.in
) і один з віком (скажімо, age.in
), а також змінити read name
і read age
рядок name=$(cat name.in)
і age=$(cat age.in)
відповідно.
KEY=VALUE
парами? Рішення зовсім інші (якщо це останнє, застосовується відповідь Такката, колишня Раду)