bash - 使用自动机创建服务,咖啡因
问题描述
首先,对不起我的英语,不是母语人士。
由于我有点厌倦了打开终端并且^C
我想创建一个caffeinate -d
在我的 Mac OS X 10.11 上激活的快捷方式,
所以我一直在尝试一个简单的 Automator 服务,但是以我的菜鸟技能它不起作用。
这是设置:
我选择服务作为文档类型
Library->Utilities->Run Shell Script
Service 接收:no input
在:any application
Shell:/bin/bash
传递输入:to stdin
CAFFEINATECHECK=`ps | grep caffeinate | cut -d ' ' -f7,8`
if [ $CAFFEINATECHECK == 'caffeinate -d' ]; then
killall caffeinate
else
caffeinate -d
fi
问题是这么短的脚本一直运行而没有响应,我必须在一分钟后停止它
我希望有人能给我任何必要的提示
解决方案
简而言之,只需用更优雅的命令行替换我的代码:
if [[ $(pgrep caffeinate) == "" ]]; then
caffeinate -d &
else
pkill caffeinate
fi
我在 user3439894 的解决方案中所做的唯一更改是删除“&”(通常在命令行末尾用于在后台运行它),因为显然 Automator 不能很好地使用它(可惜我不记得我在哪里读/听说过..!)。
保存服务后,我只需要
- 打开系统偏好设置键盘->快捷方式->服务
- 将我的快捷方式与右侧面板中 ▼General 下的已保存工作流程绑定
这样,当咖啡因快捷方式被激活并旋转直到我停用它时,菜单栏上会出现一个齿轮 ⚙。
推荐阅读
- javascript - Console.log() 不在异步函数中等待
- javascript - 如何隐藏下面的所有内容
html标签? - ios - 团队名称作为 Appstore 中的官方发布名称?
- laravel - 有人可以帮我建立 elequent 查询 laravel
- sql - 为什么必须在一个 sql server conn 上选择“信任服务器证书”以及“加密连接”,而在另一个上只选择“加密连接”?
- go - 多根设置
- java - 我想打印给定范围之间的所有 Armstrong 编号,而不管编号如何。用户在 Java 中输入的数字中的位数
- c++ - 如何找出类实例模板的类型?
- aws-cdk - 错误处理程序未捕获 Aws 阶跃函数超时
- laravel - Laravel Vapor 自定义日志以 JSON 格式记录到 Amazon AWS Cloudwatch