macos - 在 Mac 用户登录上打开终端并运行命令
问题描述
我正在尝试自动化启动脚本的一部分,该脚本将打开一个终端窗口,该窗口将运行命令并在登录时向用户显示一堆文本。
我试图在 /Library/LaunchAgent 中创建一个似乎不起作用的 plist
/LaunchAgents/blah.blah.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "..........">
<plist version="1.0">
<dict>
<key>Label</key>
<string>terminal.menu</string>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</script>
<string>/Library/Scripts/Startup.sh</string>
</array>
</dict>
</plist>
Startup.sh 看起来像这样
osascript -e 'tell app "Terminal"
do script "echo blah blah ; ssh blah blah"
end tell'
解决方案
根据此处的信息,您可以对以下内容进行一些编辑.plist
:
在这种情况下,该
label
值应与您的名称匹配,或者您应该将您的名称另存为..plist
"blah.blah"
.plist
"terminal.menu.plist"
您已指定
ProgramArguments
,但没有Program
。也许如果你改变这个:<key>ProgramArguments</key> <array> <string>/bin/bash</script> <string>/Library/Scripts/Startup.sh</string> </array>
对此:
<key>Program</key> <string>/Library/Scripts/Startup.sh</string>
所以你的blah.blah.plist
定义现在看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "..........">
<plist version="1.0">
<dict>
<key>Label</key>
<string>blah.blah</string>
<key>Program</key>
<string>/Library/Scripts/Startup.sh</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
推荐阅读
- java - 如何从 Android 应用上传/下载文件到 Oracle 云基础设施对象存储 (OCI)
- ios - iOS:通过代码打开通用链接
- react-native - 从其他组件更改状态(不通过 setState 函数)
- algorithm - 从 1d、3d 中的位置获取螺旋索引
- node.js - 如何修复对象“未定义的属性”keyv/discordjs
- datetime - 从指定的 dateTime Kotlin Android 获取几个小时前的 dateTime
- python - Keras 保存和加载导致准确性差?
- php - 我需要输入一个数字并重定向到另一个 url php
- mysql - 将随机生成的字符串实例转换为日期时间 mysql
- c++ - 重载 << 运算符以打印向量