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

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

myVARIABLE=`grep backup /etc/crontab` 

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

 grep backup /etc/crontab 

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

  • Сравните различные IP-адреса в двух файлах?
  • Расширяет ли расширение zsh по-разному в неинтерактивных скриптах?
  • Почему при входе в систему не выполняется /etc/rc.local?
  • назначить комбинацию клавиш для запуска скрипта
  • Использование xargs с вводом из файла
  • Как напечатать n-ю строку после совпадения / пустые строки
  • Использование getline с NR в awk
  • Как инициализировать массив с помощью awk и bash?
  • One Solution collect form web for “grep searchstring / etc / crontab странное поведение в скрипте BASH”

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

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

     echo $myVariable echo "$myVariable" 

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

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