cuonglm сказал все.
Просто попробуйте:
fortune | tee "$(tty)" | pbcopy
tty
должен преобразоваться в фактический псевдотерминал (например, / dev / pts / 99
) в интерактивном сеансе (т.е. в терминале) или no a tty в пакетном режиме, at и демон.
Некоторое время назад у меня была такая же проблема.
Добавление /bin/bash помогло мне.
Пример:
0****/bin/bash /путь _к _вашему каталогу _script/script.sh > /output _
Причина :При запуске сценария оболочки вы должны определить, где должен выполняться сценарий,поэтому, вероятно, вам нужно использовать /bin/sh, /bin/zsh или что-то еще, чтобы запустить скрипт внутри.
Cron сам не знает, где запустить скрипт.
Также проверьте /var/log/syslog и /var/mail/root, чтобы узнать причину.
Задачи Cron запускаются с /bin/sh и пустой средой, поэтому иногда вам может понадобиться получить ваш профиль bash или какой-либо другой файл среды или, при желании, включить переменные среды в файл cron. PATH обычно является самым большим преступником. По умолчанию путь установлен в /usr/bin :/bin, поэтому, если ваш скрипт ссылается на какие-либо исполняемые файлы, которые не находятся в этих двух каталогах, без полного пути, ваш cron не будет работать. Вы можете установить любую переменную среды в crontab с помощью простого KEY=VALUE, например
PATH=/usr/bin:/bin:/usr/local/bin