объединение имен файлов в переменную

Я пытаюсь объединить имена файлов для использования в команде ftp mdelete. Каждое имя файла должно быть разделено пробелом, чтобы команда mdelete работала. Переменная $ i находится в цикле, и я пытаюсь назначить имя файла, расположенное в $ i, до $ FILESTODELETE в добавлении к именам файлов, уже находящихся в $ FILESTODELETE

for i in `ls` do $FILESTODELETE = "$FILESTODELETE $i " ..... END ...... mdelete $FILESTODELETE 

2 Solutions collect form web for “объединение имен файлов в переменную”

 set -- * filenames="$*" 

До тех пор, пока вы не изменили значение своей среды для $ IFS, вышесказанное – это все, что вам нужно, чтобы получить все имена неточечных файлов в текущем каталоге в одну строку, разделенные пробелами и отсортированные по языку в любом Оболочка POSIX. Если вы изменили $ IFS, то какой бы ни был его первый символ, будет использоваться только один разделитель пространства.

Обратите внимание, однако, что вышеизложенное не гарантирует, что указанные имена файлов также не содержат пробелов или строк новой строки или в основном любого символа, но NUL или / – они, вероятно, не указаны в именах файлов.

С новой достаточно новой версией ksh (не совсем точно, насколько она новая) достаточно просто:

 files_to_delete=( * ) ... mdelete ${files_to_delete[@]} 

Первая строка создает files_to_delete в качестве массива, элементы которого являются файлами в вашем текущем каталоге (возвращаемом * glob), а вторая строка расширяет files_to_delete как files_to_delete пробелом (при условии значения по умолчанию для строки $IFS ).

Или, с любой совместимой с POSIX оболочкой, вы можете полностью исключить эту переменную и просто перейти непосредственно к:

 mdelete $(echo *) 
  • Установка переменной, значение которой зависит от другой переменной
  • sh работает нормально на моем компьютерном терминале, но создает ошибки на удаленном сервере
  • Что делает эта команда с обратной косой чертой в конце?
  • Сценарий зависает после входа в zenity
  • Печатать аргументы оболочки в обратном порядке
  • Набор библиотек, таких как ncurses в сценарии оболочки
  • В ShellScript, как вызвать функцию после завершения уже запущенной функции?
  • Оценка выражения и округление до трех десятичных знаков
  • Перейти на один уровень от несуществующего пути
  • Использование rsync в cronjob при необходимости пароля
  • Выполнять скрипты bash при вводе каталога
  • Interesting Posts

    Как проект Linux Kernel отслеживал ошибки в ранние дни?

    Можем ли мы сохранить временные метки файлов при извлечении ZIP-архива?

    Lubuntu + pulseaudio

    Echo строка с переменной в ней без расширения / оценки

    Свежая установка Debian. Какие файлы я могу восстановить из резервной копии?

    Как заставить мой сервер использовать файл hosts для разрешения имен?

    screen + vim – Любой способ автоматически установить имя окна экрана, чтобы открыть имя файла vim?

    Не удалось активировать новый зашифрованный раздел подкачки

    Как изменить аргументы по умолчанию на gcc Когда я запустил Make "filename"

    Не работает ли sysctl kern.bufcachepercent в OpenBSD 5.2 выше 1,7 ГБ?

    почему сценарий с интенсивной файловой системой не работает быстрее на диске

    Как исправить путь для pip?

    В emacs существует ли способ Hex редактировать / просматривать буфер без потери информации об отмене?

    Список каталогов, затем файлы – с одной командой?

    Как исправить мою установку llvm?

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