#bash #macos #osascript
#bash #macos #osascript
Вопрос:
Итак, я пытаюсь добавить элемент входа в терминал и использую эту строку:
osascript -e 'tell application "System Events" to make login item at end with properties {path:/Users/me/Desktop/main, hidden:true}'
Но дело в том, что я хочу main
, чтобы файл добавлял себя к элементам входа, что означает, что путь main
может измениться, поэтому я хочу, чтобы путь был такой переменной:
cd "$(dirname "$0")"
STR="$(dirname "$0")"
osascript -e 'tell application "System Events" to make login item at end with properties {path:$STR, hidden:true}'
sudo python3 main.py
Но это дает мне кучу синтаксических ошибок, есть ли другой способ использовать переменную для пути?
Спасибо
Комментарии:
Ответ №1:
Поскольку тело applescript заключено в одинарные кавычки, переменная не может расширяться.
Кроме того, поскольку в теле есть двойные кавычки, цитирование становится затруднительным.
Это будет работать:
printf -v body 'tell application "System Events" to make login item at end with properties {path:%s, hidden:true}' "$STR"
# ...............................................................................................^^................^^^^^^
osascript -e "$body"