Создание переменных и назначение значений через loop (bash)

Есть ли способ создать переменные bash и присвоить их значения через цикл?

Что-то вроде:

#!/bin/bash c=0 for file in $( ls ); do var"$c"="$file"; let c=$c+1; done 

EDIT: Спасибо @Costas и @mdpc за указание, что это будет бедной альтернативой списку; вопрос только теоретический.

2 Solutions collect form web for “Создание переменных и назначение значений через loop (bash)”

Ну, вы абсолютно можете использовать eval следующим образом:

 c=0 for file in $( ls ); do eval "var$c=$file"; c=$((c+1)); done 

Этот код будет создавать переменные с именами var0, var1, var2, … с каждым, у кого есть имя файла. Я предполагаю, что у вас будет веская причина, по которой вы хотите сделать это, используя массив …

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

Первый:

 c=0 for file in $( ls ); do var[$c]="$file"; c=$(($c+1)); done 

Во-вторых:

 c=0 for file in $( ls ); do var[c++]="$file"; done 

В третьих:

 for file in $( ls ); do var[${#var}]="$file"; done 

В-четвертых:

 var=( $(ls) ) 

пятый

  1. нет необходимости использовать ls , просто поместите * для всех файлов
  2. внутри [] знак $ можно омрачить
  • в то время как цикл чтения
  • Как иметь дело с пробелами в переменной
  • получить командную строку agrument переменной в сценарии оболочки
  • замените '_' на ',' в файле, который содержит список имен файлов
  • Bash Script - ffmpeg не вызывается, как ожидалось
  • Приглашение командной строки Linux ssh
  • Как передать команду программе в оболочку?
  • set -u использование не работает как ожидалось
  • как объединить две команды?
  • Использование MPI с .sh скриптом?
  • Сравнение файлов и их свойств
  • Interesting Posts

    Восстановить / etc / файлы конфигурации по умолчанию

    команда mate-panel –reset не найдена

    Как установить mysql-сервер 5.6 на RHEL 5.8 (когда MySQL-сервер 5.0 уже установлен)

    Создайте Linux-дистрибутив с минимальным количеством файлов

    Преобразование настраиваемых тегов с аргументами

    Невозможно передать пароль su в скрипте

    Как печатать только определенные переменные (переменные оболочки и / или среды) в bash

    Как вызвать функцию уровня ядра в пользовательском пространстве

    Две установки Fedora 23 на одном компьютере

    почему это так долго, чтобы прочитать несколько строк моего файла?

    CentOS 5.11: yum устанавливает, но пакеты остаются пропавшими без вести

    Как правильно подключить KVM в Linux

    Как загрузчик и ядро ​​взаимодействуют после загрузки ядра в память?

    Как перенаправить stderr на переменную внутри if condition? удар

    Изменение прав доступа к файлам в файловой системе HFS +

    Linux и Unix - лучшая ОС в мире.