Может ли macOS launchd запустить скрипт bash? - PullRequest
0 голосов
/ 30 января 2019

Заголовок моего вопроса добровольно провокационный.

«Да, конечно» будет первым ответом для поклонника mac (как и я).

«Это не так очевидно» - мой авто- после трех дней борьбы, поиска и пота в очень расстраивающем настроении, что, как я считаю, должно быть намного проще.

Моя проблема: я написал простой скрипт bash для резервного копирования некоторых важных файлов в другом месте назначения,Я назвал этот скрипт «резервным копированием».Одна из содержащихся команд выглядит следующим образом:

cp "$(latest "Library/Application Support/Firefox/Profiles/xyhlne3n.default/bookmarkbackups")" /Users/me/Backup

Это, очевидно, «подстановка команд» в речи bash.Теперь сам мой скрипт, который содержит больше команд, в первую очередь

. ~/.bashrc

, чтобы каждая неинтерактивная оболочка могла распознавать «последние», функцию, которую я определил в .bashrc для извлечения самой последнейизмененный файл внутри директории, работает с брелоком при запуске из оболочки.Но я был бы очень рад, если бы мог запускать его на регулярной основе с launchd, который, как я узнал, НЕ МОЖЕТ, помимо прочего, анализировать $VAR, и поэтому он не может выполнить задание.

Есть ли способ сделать так, чтобы launchd digest моя «последняя» функция определялась так:

    function latest {
unset -v latest;
    for file in "$1"/*; do
        [[ $file -nt $latest ]] && latest=$file
    done
    echo "$latest"
}

?

Поскольку при каждой загрузке это приводит к одной и той же ошибке:

cp: fts_open: нет такого файла или каталога.

Спасибо

...