Абсолютный путь в сценариях bash

У меня есть сценарий оболочки myscript.sh который вызывает команду, скажем, mycmd . Когда я запускаю этот сценарий из терминала, например ./myscript.sh , все работает нормально.

Но когда я добавляю этот скрипт к crontab, вывод mycmd пуст. Когда я вызываю /usr/local/bin/mycmd внутри myscript.sh все работает отлично.

Итак, почему я должен использовать абсолютный путь к исполняемому файлу? Это потому, что это не в $PATH «cron-bash»?

One Solution collect form web for “Абсолютный путь в сценариях bash”

У вас это точно: окружение cron может иметь PATH , который не включает /usr/local/bin/ . Вы можете исправить это, добавив в свой скрипт этот каталог в PATH :

 PATH="$PATH:/usr/local/bin/" 

Однако наилучшей практикой является использование явных путей для всех внешних двоичных файлов, которые сценарий вызывает на всякий случай (например) вредоносную программу, которую удобно назвать cp попадает в PATH где-то перед /bin .

  • Перенаправить bash stdout + stderr в один файл и stderr в другой файл
  • Как искать определенные разделы файла, а затем извлекать только соответствующую информацию в этом разделе?
  • Действительно ли программы `if` и` then`
  • Как программы с программным обеспечением с оболочкой уравновешивают скорость вывода / ввода?
  • как отключить ожидание «нажмите enter» после выполнения сценария bash над cron
  • Как я могу увеличить число, найденное подстановочным знаком в предыдущей команде? (ЗШ)
  • Подстрока grep между кавычками
  • Добавить 0 в середине имени файла
  • Как проверить папку внутри конкретной папки в сценарии оболочки?
  • запись файла команды в файл
  • Как читать и делать min / max / avg из потока NMEA
  • Доступ к переменной индекса массива из цикла сценария оболочки bash?
  • Interesting Posts

    Проблема с правами доступа к папке

    изменение порядка элементов в списке

    Процесс проверки и уничтожения пользователя перед удалением

    Где make defconfig получает свою конфигурацию в OpenWrt?

    Использование tee для добавления строки в файл, а также использовать ее в качестве замены шаблона в другом файле

    Есть ли команда типа «tee», которая ограничивает размер файла и обрабатывает выходной файл как очередь с фиксированным размером?

    Как очистить кэш кэша Bash от исполняемых файлов?

    понимание этой таблицы разделов DOS и клонирование на новый диск

    Эмулировать тройник с кошкой + перенаправления

    Странная неправильная кодировка, отображаемая при загрузке systemd

    разрешение на скрипты в ~ / bin

    bash – игнорировать регистр, но запретить автозаполнение, если двусмысленный

    Как мне форматировать USB до написания ISO?

    Не удается установить ImageMagick на Centos с помощью Yum

    Как объединить два файла разных строк и столбцов и вывести соответствующие строки с помощью колонок?

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