问题描述
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
但这给了我很多语法错误,还有另一种使用变量作为路径的方法吗?
谢谢
解决方法
由于applescript主体使用单引号引起来,因此该变量无法扩展。
另外,由于主体中有双引号,因此引号变得困难。
这将起作用:
printf -v body 'tell application "System Events" to make login item at end with properties {path:%s,hidden:true}' "$STR"
# ...............................................................................................^^................^^^^^^
osascript -e "$body"