首页 > 解决方案 > 使用自动机创建服务,咖啡因

问题描述

首先,对不起我的英语,不是母语人士。
由于我有点厌倦了打开终端并且^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

问题是这么短的脚本一直运行而没有响应,我必须在一分钟后停止它
我希望有人能给我任何必要的提示

标签: bashterminalsleepautomator

解决方案


在 Ask Different 上得到了重复的解决方案

简而言之,只需用更优雅的命令行替换我的代码:

if [[ $(pgrep caffeinate) == "" ]]; then
    caffeinate -d &
else
    pkill caffeinate
fi 

我在 user3439894 的解决方案中所做的唯一更改是删除“&”(通常在命令行末尾用于在后台运行它),因为显然 Automator 不能很好地使用它(可惜我不记得我在哪里读/听说过..!)

保存服务后,我只需要

  1. 打开系统偏好设置键盘->快捷方式->服务
  2. 将我的快捷方式与右侧面板中 ▼General 下的已保存工作流程绑定

这样,当咖啡因快捷方式被激活并旋转直到我停用它时,菜单栏上会出现一个齿轮 ⚙。


推荐阅读