Этот вопрос можно переформулировать в более знакомой обстановке. По аналогии:
«У меня есть программа Ruby, которую я хочу запустить, но на моей платформе есть только интерпретатор Python. Могу ли я использовать интерпретатор Python для запуска моей программы Ruby, или мне нужно переписать свою программу на Python? "
Архитектура набора команд (" цель ") - это язык -" машинный язык "- и разные процессоры реализуют разные языки. Таким образом, запрос к процессору ARM для запуска двоичного файла Intel очень похож на попытку запустить программу Ruby с использованием интерпретатора Python.
Ваша проблема может заключаться в следующем (от man at
):
ОПИСАНИЕ
at
иbatch
чтение команд из стандартного ввода или указанного файла, которые для выполнения позже, используя/bin/sh
.
Кроме того, если вы запустите, например, at -f noti.sh -t 2...
, должно появиться следующее предупреждение:
warning: commands will be executed using /bin/sh
job 4 at Mon May 8 13:51:00 2017
/bin/sh
в Debian символическая ссылка на /bin/dash
.
Я предполагаю, что вы тестировали свой скрипт с bash
, который имеет некоторые возможности, не определенные POSIX, т.е. они не будут работать в dash
или, вообще, с /бин/ш
.
В вашем конкретном случае проблемы [[ ]]
и OSTYPE
, которые не поддерживаются тире
. Попробуйте запустить
$ sh noti.sh
Он вернет следующую ошибку
noti.sh: 2: noti.sh: [[: not found
noti.sh: 4: noti.sh: [[: not found
, тогда как запуск скрипта с bash
делает то, что вы хотите.
Чтобы запустить сценарий так, как вы задумали, вам может потребоваться переписать его, чтобы он был совместим с /bin/sh
(тире
в вашем случае), см. www. shellcheck.net за помощь в этом.