ошибка недопустимой опции sed для имен файлов, содержащих пробелы

Модуль libpam принадлежит пользователю root, но его может исполнять/использовать кто угодно, поэтому у вас не должно возникнуть никаких проблем. Большую озабоченность вызывает то, как вы собираетесь изменять другие настройки или даже устанавливать RStudio Server без прав root.

0
17.12.2020, 11:24
1 ответ

Ваша ошибка связана со следующей строкой скрипта:

sed -i $REPLACE $1

При этом используется как переменная REPLACE, так и $1без кавычек, что означает, что оболочка разделит их на слова по пробелам, табуляциям и символам новой строки (, а затем дополнительно обработает эти слова для шаблонов подстановки имен файлов ). Затем эти слова будут даны как отдельные аргументы - sed.

Вам может сойти с рук использование

sed -i -e "$REPLACE" -- "$1"

Кроме того, в вашей clone_directoryфункции есть несколько переменных без кавычек:

  rename_file ${dir_name}
  ROOT=$FILE_NEW
  cd $ROOT

а также в вашей replace_tagsфункции (обратите внимание, что использование {...}вокруг имен переменных обычно не требуется и не эквивалентно заключению переменной в кавычки ).

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

См. также:

2
18.03.2021, 22:42

Теги

Похожие вопросы