Intereting Posts
Преобразование файлов в OGG с помощью FFMPEG создает чрезвычайно большой файл Контроллер Bluetooth работал на Ubuntu 10.10, но не в более поздних версиях поиск по шаблону и отображение последнего текущего шаблона? Могу ли я монтировать SDADA READER в fstab? Как связать папку для создания ярлыка Совпадение с подстановочной строкой в ​​операторе case с использованием sh shell Как переключается переключатель -name в GNU, когда он нацелен на каталог и его содержимое? Как создать скрипт bash до тех пор, пока не будет установлен pendrive? Фоновые процессы смешивают порядок выполнения сценария оболочки eth0 не установлен на CentOS ldd сообщает мне, что мое приложение «не является динамическим исполняемым файлом», Может запустить пользовательский сервис systemd, не может его включить Bash: Ошибка синтаксиса – Неожиданно рядом с токеном «else» Как использовать мой кросс-компилятор для компиляции? Как предоставить rwe разрешения для root, admin и user1; в каталоге, где все файлы и папки принадлежат пользователю1 (rwe)

Shell scripting помогает текстовому файлу в массив

#!/bin/bash function guest { i=0 while IFS = $'\n' read -r name; do GUESTS[i]="${name}" ((i++)) done<filename.txt } function print{ i=0 while ((${GUESTS[@]} > $i)) do echo "${GUESTS[i++]}\n" done } 

В коде, который я привел выше, я пытаюсь выполнить две функции, первая функция – взять любой текстовый файл со списком имен случайных людей (например, Bob \ n, Jennifer \ n, Caleb \ n , и т. д.) и преобразовать его в массив GUESTS. Код ДОЛЖЕН БЫТЬ В МАССИВЕ ГОСТЕЙ. Затем на 2-й функции следует распечатать массив GUESTS с каждым именем, имеющим собственную строку.

Вы можете сделать это, используя встроенный mapfile :

 $ cat /tmp/file.txt Bob Jennifer Caleb $ mapfile -t guests < /tmp/file.txt $ printf '%s\n' "${guests[@]}" Bob Jennifer Caleb 

Для вашей первой функции Bash облегчил вам задачу. Вот вам все, что вам нужно сделать:

 readarray GUESTS < filename.txt 

Для второго он должен выглядеть примерно так:

 print () { for index in ${!GUESTS[@]}; do echo ${GUESTS[$index]} done }