Вот один из способов сделать это:
while read line
do
my_array=("${my_array[@]}" $line)
done
echo ${my_array[@]}
Если вы просто запустите его, он будет продолжать чтение со стандартного ввода, пока не нажмете Ctrl + D (EOF). После этого строки, которые вы ввели, будут находиться в my_array. Некоторые могут найти этот код запутанным. Тело цикла в основном говорит my_array = my_array + element.
Некоторые интересные фрагменты документации:
В расширенном руководстве по созданию сценариев Bash есть отличная глава о массивах. Манипуляция прочитанных встроенных примеров массивов из массива thegeekstuff.com# telinit 0
Уровень запуска 0 - режим остановки. Указание init на ввод уровня запуска 0 приведет к отключению всех процессов, отключению файловых систем и остановке машины. Это вполне приемлемый способ сбить систему. На многих ноутбуках и современных настольных компьютерах это также приведет к отключению машины. Источник Дополнительно в случае, если кто-то задается вопросом о перезагрузке:
# telinit 6
Уровень запуска 0 является остановленным. Указание init на ввод уровня запуска 0 приведет к отключению всех процессов, отключению файловых систем и остановке машины. Это вполне приемлемый способ сбить систему. На многих ноутбуках и современных настольных компьютерах это также приведет к отключению машины. Источник
Уровень выполнения 6 - это режим перезагрузки. Все процессы будут уничтожены, файловые системы будут отключены, и машина будет перезагружена. Это вполне приемлемый способ перезагрузки системы. Источник
# at now+30 minutes <<<'telinit 0'
Чтобы выполнить что-то в будущем, у нас есть команда «at». Это будет:
# sleep 1800 && telinit 0
или сон:
Как предложение, не обращаясь непосредственно к вашему вопросу. Даже команда at не установлена по умолчанию, а sleep с telinit - отличный chioce: если вы хотите попробовать другой инструмент, отличный от telinit, вы можете попробовать перезагрузить его с помощью:
echo reboot | at now +30 m