grep searchstring / etc / crontab странное поведение в скрипте BASH

Я работаю над скриптом BASH, который создает автоматическое резервное копирование через crontab. Я пытаюсь использовать

myVARIABLE=`grep backup /etc/crontab` 

для возврата строк, содержащих «резервную копию», если запись уже сделана. Вместо того, чтобы возвращать строки из /etc/crontab похоже, он возвращает вывод нескольких команд ls. Я запустил команду

 grep backup /etc/crontab 

из командной строки и работает так, как ожидалось. Я также могу grep другие файлы через мой скрипт BASH, и он также возвращает ожидаемые результаты. Любые мысли о том, почему /etc/crontab вызывает проблемы grep в скрипте? Благодаря!

One Solution collect form web for “grep searchstring / etc / crontab странное поведение в скрипте BASH”

Это связано с тем, что / etc / crontab содержит символы звездочки ( * ), которые, если они не экранированы, будут расширены оболочкой.

Сравните выходные данные этих двух команд:

 echo $myVariable echo "$myVariable" 

Первая команда использует переменную unescaped, поэтому символы звездочки будут расширены для всех файлов в текущем каталоге. Вторая команда – это то, что вы хотите, реальное содержимое файла crontab.

  • Выполнение задания Cron каждые 5 секунд
  • Условная grepping
  • Загрузить файл, связанный в MySQL DB, извлечь текст и вставить в db с помощью скрипта bash?
  • diff два каталога для изменений и выход формата для использования для скрипта
  • Как я могу использовать sed, чтобы отрезать строку от строки?
  • Решение целочисленного выражения ожидается
  • Запросы Mysql из файла bash
  • Как скопировать несколько файлов, но сохранить их расширения одинаково?
  • Как скриптировать эту функцию массового переименования?
  • Нажмите кнопку html через скрипт оболочки?
  • Запустить тот же скрипт на нескольких серверах через SSH
  • Разделить команду и аргументы и вставить в переменную в сценарий bash
  • Linux и Unix - лучшая ОС в мире.