Большое спасибо Касу за его ответ и помощь с синтаксисом bash, но я обнаружил, что из-за некоторой возни,тильдав ~/Library/LaunchAgents/[agent]
является причиной проблемы в том, чтобы заставить скрипт работать так, как задумано. и не выбрасывать составной путь.
По какой-то причине тильда не раскрывается в параметре адреса launchctl, поэтому, если у кого-то еще возникла эта проблема, используйте:
$HOME/Library/LaunchAgents/[agent]
для обращения к вашему агенту в команде launchctl.
Этот путь описан здесь в разделе «устаревшие команды», затем «загрузить»
N.B:для моего скрипта, по крайней мере, это на самом деле не устраняет ошибки генерирования launchctl, но исправляет функциональность. Несмотря на то, что в документации говорится:
Due to bugs in the previous implementation and long-stand- ing client expectations around those bugs, the load and unload subcommands will only return a non-zero exit code due to improper usage. Otherwise, zero is always returned.
.. ловушка ERR, которую я настроил, постоянно выдает ошибки без сообщения, даже если сценарий работает по назначению, а репликация команд вручную не выдает никаких сообщений об ошибках.
Возможно, кто-то сможет исправить мое невежество, но если вы все еще -чешете голову после моего предложения, попробуйте launchctl list | grep [agent_name]
посмотреть, добились ли вы ожидаемого эффекта
Чтобы запустить скрипт,:
Установить права на выполнение файла:
chmod 755 <filename>
, а затем запустите его
./<filename>
Вызовите его, используя в качестве аргумента для bash
, не нужно сначала устанавливать разрешения:
bash <filename>
Чтобы увидеть выполнение каждой строки, используйте-x
bash -x <filename>