1

Я работаю над сценарием. Я имею вызов программы, которая имеет входной каталог.

Программа выглядит так, если выполняется из командной строки

/path/to/program -c /path/to/config -d "path/to/directory"

Я использую переменную для пути к каталогу. "${name}" проблема, которую я имею в том, что программа ожидает двойные кавычки для пути к каталогу. Я должен использовать двойные кавычки в моей переменной, чтобы покрыть пробелы и т.д.

find $SRC -type d -name '*' | while read name;
do
   $program -c $pgm_config -d "${name}";
done

Скрипт вроде работает. Программа подбирает каталог, но, похоже, тоже берет все остальное в папке. Отдельные файлы и т.д. Я уверен, что это действительно неправильно или я упускаю что-то простое. Я попробовал несколько разных способов проверить, смогу ли я понять это методом проб и ошибок. ""${name}"" '"${name}"' без удачи

1 ответ1

2

Вы должны использовать escape-символ или \ this, если вы хотите использовать символы, которые считаются частью синтаксиса.

find $SRC -type d -name \* | while read name;
    do
        $program -c $pgm_config -d \"${name}\";
    done

помните, что это будет выглядеть также как скрытые каталоги, имена которых начинаются с буквы . ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .