Я нарушил регистрацию доступа к Apache Virtual Host.Так странно - помогите

В вашем коде есть несколько ошибок:

  1. Шаблон *.texбудет расширен при вызове функции DO, если он соответствует каким-либо именам файлов в текущем каталоге. При вызове функции вам нужно указать шаблон как '*.tex', "*.tex"или \*.tex.

  2. lsне требуется. У вас уже есть findи grep, которые могут сообщать пути к найденным файлам.

  3. -name "$@"работает правильно, только если "$@"содержит один элемент. Лучше использовать -name "$1". Решение, позволяющее использовать несколько шаблонов, см. ниже.

Функция может быть записана

DO () {
   # Allow for multiple patterns to be passed,
   # construct the appropriate find expression from all passed patterns

   for pattern do
       set -- "$@" '-o' '-name' "$pattern"
       shift
   done

   # There's now a -o too many at the start of "$@", remove it
   shift

   find. -type f '(' "$@" ')' -exec grep -qF 'TODO' {} ';' -print
}

Вызов этой функции как

DO '*.tex' '*.txt' '*.c'

заставит его выполнить

find. -type f '(' -name '*.tex' -o -name '*.txt' -o -name '*.c' ')' -exec grep -qF TODO {} ';' -print

Это сгенерирует список путей к файлам с этими суффиксами имен файлов, если файлы содержат строку TODO.

Чтобы использовать grepвместо findдля печати найденных путей, измените бит -exec... -printна -exec grep -lF 'TODO' {} +. Это будет эффективнее,особенно если у вас есть большое количество имен файлов, соответствующих заданному выражению (s ). В любом случае вам определенно не нужно использовать ls.


Чтобы разрешить пользователю использовать

DO tex txt c

ваша функция может быть изменена на

DO () {
   # Allow for multiple patterns to be passed,
   # construct the appropriate find expression from all passed patterns

   for suffix do
       set -- "$@" '-o' '-name' "*.$suffix"   # only this line (and the previous) changed
       shift
   done

   # There's now a -o too many at the start of "$@", remove it
   shift

   find. -type f '(' "$@" ')' -exec grep -qF 'TODO' {} ';' -print
}
-1
17.12.2019, 18:04
1 ответ

Моя проблема была решена после перезагрузки всего сервера. Перезапуск Apache не помог.

У меня была еще одна проблема, которая началась в то же время.... при загрузке по SFTP создавался файл нулевого размера, после чего передача файла не удавалась. Перезагрузка сервера также устранила эту проблему.

Так необъяснимо. Похоже на то, как он стал президентом:(

0
28.01.2020, 05:11

Теги

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