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.

  • как заставить Expect ждать завершения другого скрипта
  • Знает ли cron, что запланированный экземпляр уже запущен?
  • Запуск скрипта во время загрузки / запуска; init.d vs cron @reboot
  • передача паролей в скрипт
  • Как печатать текст между первым вступлением пары строк?
  • Выполнять удаленные команды, полностью отсоединяясь от ssh-соединения
  • Сравните два файла с использованием awk
  • Сценарий, который удаляет лишние пробелы между буквами в тексте
  • Использование базового имени текущего пути для определения нового файла
  • Как полностью разблокировать команду оболочки, которая использует перенаправление
  • Проблема с сценарием Linux Bash с подстановочным знаком
  • Linux и Unix - лучшая ОС в мире.