grep отлично работает в командной строке, но ничего не возвращает в скрипте

Я пытаюсь написать небольшой скрипт, чтобы получить список файлов, соответствующих определенным критериям, в файл.

#!/bin/sh cd /var/www_data/patch/ grep --include=\*.{php,ini,conf,sh} -ril -P "'([\d\w\-\_\.]+)(@domain.com)'" "/var/www_data/something/" 2>&1 > mails 

Линия grep отлично работает в командной строке, но если я запустил ее через скрипт, итоговый файл будет иметь размер 0 байт. Есть идеи, почему это происходит?

  • Как заставить sed выполнять действия только в первом матче?
  • Для цикла для зависания на нескольких страницах с API
  • Что делает ]?
  • Параллелизация цикла for с очень большим количеством итераций
  • не выполняет то, что он должен делать?
  • Потрясающее поведение округления с печатью
  • Как я могу подсчитать частоту строк среди многих файлов?
  • Сравнение столбцов в двух файлах и добавление первого файла
  • 2 Solutions collect form web for “grep отлично работает в командной строке, но ничего не возвращает в скрипте”

    Нашел свою ошибку. Предполагалось, что это будет #!/bin/bash . Благодаря @steeldriver для наконечника

    Чтобы включить расширение оболочки внутри скрипта, вам нужно передать параметр командной строки в bash, это можно сделать в самом скрипте:

     #! /bin/bash set -B #enables expansion set -X #enables debugging 

    При первом варианте все будет передано оболочке, как если бы оно было написано в командной строке, второй вариант будет генерировать много результатов, что очень полезно, чтобы увидеть, что происходит, но вы, конечно же, хотите отключить его, как только ваш скрипт работает правильно ,

    Interesting Posts

    Как я могу получить полный список процессов в Solaris без усеченных линий?

    как центрировать вертикально мозаичный водяной знак

    Команда Solaris 10, pkgtrans

    Управление оконным стеклом только с помощью мыши

    установите umask (разрешения) аналогично setgid в каталоге

    Как пользователи монтируют .bin / .cue или .iso с устройством loopback как только для чтения?

    Почему Gnome или KDE не производят собственный дистрибутив (или другие проекты для настольных компьютеров, если на то пошло)?

    Скрипт Perl работает отлично в интерактивной оболочке, но не как задание cron

    Есть ли команда для пучка?

    Две команды для одновременного запуска в двух терминалах

    gmail Внутренняя ошибка синтаксического анализа: Недопустимый конверт Кому: адрес (недопустимое доменное имя): root @

    Как перевернуть строки между шаблоном в другой файл

    Как установить Debian Jessie с рабочего стола XFCE?

    Bash while loop читает из списка путей, разделенных двоеточиями, используя IFS

    Ошибка в lpr, но принтер не печатает

    Linux и Unix - лучшая ОС в мире.