Уважаемые коллеги!
Я хочу получить список файлов по маске, написал такой скрипт:#!/bin/bash
FileMask="*.xml | grep -v 'Default'" # маска файла, формат такой же, как и в командной строке
SrcPath="/usr/ScriptSL/USSD/in" # папка-источник, в которой надо найти все файлы по маске
FileListFN="/usr/ScriptSL/USSD/XML_20090827.lst" # название файла, в который надо вывести названия файлов
# Скрипт должен выводить все файлы, которые подходят по маске, в один столбец, вырезать из них имя папки-источника и класть в указанный файл
ls -1 "$SrcPath"/"$FileMask" | sed s-"$SrcPath"/-- > "$FileListFN"
Вот то, что получается, если сделать echo строки выше:
ls -1 /usr/ScriptSL/USSD/in/*.xml | grep -v 'Default' | sed s-/usr/ScriptSL/USSD/in/-- > /usr/ScriptSL/USSD/XML_20090827.lst
Это как раз то, что мне нужно, такая строка работает в shell, если её скопипэйстить. Однако, при попытке запуска shell вываливает мне то полный список файлов, подходящих к маске, потом пристыковывает к нему кусок скрипта после первого "|" (ничего не работает), то пытается искать grep, -v, 'Default' как отдельные файлы и ничего не находит. У меня есть чувство, что дело в кавычках. Какие кавычки надо ставить, чтобы в строку команды подставились значения переменных, а не результат их выполнения?
Заранее большое спасибо!