Вы должны установить для переменной IFS
значение $ (echo -en "\ n \ b")
, например:
#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
find . -group groupname -exec sh -c 'su -c "chmod -R u+w,g-w,o-w,g+r,o+r ." - groupname {}' \;
IFS=$SAVEIFS
Проблема здесь в том, что sudoedit
копирует файл во временный файл, прежде чем открывать его в редакторе. Когда файл имеет расширение, временный файл создается с тем же расширением, и режимы подсветки синтаксиса на основе имени файла -выбираются соответствующим образом (, например. для файлов C ). Когда файл не имеет расширения, как в случае с nanorc
, он создается со случайным расширением; это сбивает с толку выбор режима подсветки синтаксиса на основе имени файла -, а nano
приводит к тому, что файл обрабатывается как стандартный текстовый файл.
Если вы сможете перенастроить nano
для обработки любого файла nanorc*
как файла конфигурации, вы сможете восстановить требуемое поведение. В противном случае я не уверен, что есть способ справиться с этим автоматически.
try
function sunano {
export SUDO_EDITOR='/usr/local/bin/nano'
sudoedit -E "$@"
# ^^
# add this
}
-E или --preserve-env
передает переменные среды новому процессу