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

Я пытаюсь объединить имена файлов для использования в команде 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 *) 
  • Не удалось выполнить скрипт
  • Синтаксическая ошибка в точке с запятой в сценарии оболочки
  • Как печатать только определенные символы?
  • подсчет нескольких шаблонов за один проход с помощью grep?
  • Доступ к экранам назад и вперед через скрипт bash
  • Частота слов в тексте на неанглийском языке: как я могу объединить единичные и множественные формы и т. Д.?
  • Перенаправить скрипт stderr и stdout в файл, но сохранить stdout в tty?
  • преимущества жесткой ссылки файла над копией файла
  • Преобразование `для файла в` для `find`, чтобы мой скрипт мог применяться рекурсивно
  • Команда mv с шаблоном пути, содержащим случайную строку
  • Цикл между открытыми окнами с wmctrl
  • Linux и Unix - лучшая ОС в мире.