Alfred工作流workflows实例 - 查询内网ip

作者:matrix 发布时间:2018-09-07 分类:零零星星

Alfredmac上强大的快速启动工具 可以自定义php/shell/ruby/python脚本执行任意操作。比如快速搜索关键字打开网页 查询字符转码 ip。。。这些都是可以自己定义操作的,只是需要一些脚本语言编写的知识。

windows 上有类型的Wox https://github.com/Wox-launcher/Wox

下载Alfred

官网: https://www.Alfredapp.com/

工作流workflows自定义脚本的功能在Alfred中是收费的功能,还好 有可用的版本

nmac.to cracked:https://userscloud.com/o3ibe2w7071h/nmac.to_alf37931b.zip

添加/配置workflows

点击Workflows切换到工作流选项

窗口左下角 「 help + -」,点击 +->Blank Workflow 开始新建工作流程

填写名称name,描述Description,Bundle id为自己标记的包名id 要确保唯一性。

图片4087-Alfred工作流workflows实例

右边黑色背景窗口中右键 inputs->Script Filter 添加自定义执行的脚本

图片4086-Alfred工作流workflows实例

配置执行脚本以及触发的关键字

keyword为触发的关键字 比如alfred启动框框中输入baidu空格query,baidu就是触发脚本的自定义关键字,空格后面的query即为查询的参数下面的Language`即为脚本语言 这里用的系统自带的权限脚本。

图片4090-Alfred工作流workflows实例

#!/bin/bash
ip=$(ifconfig en0 | grep 'inet .*'  | sed 's/^.*inet//g' | sed 's/ netmask.*//g')
cat << EOF
{"items": [
    {
        "title": "${ip}",
        "subtitle": "局域网en0 ip",
        "arg": "${ip}"
    }
]}
EOF

说明:
使用系统bash 查询ifconfig命令en0网卡的IP信息 管道命令符|继续处理sed截取输出结果。
最后使用cat输出json数据用于Alfred读取并显示到结果列表
items具体参数释义参考下方alfredapp.com链接。
这里arg是用于复制粘贴/通知等操作的Alfred变量赋值,否则会没反应。如果只是显示查看 可以只设置titlesubtitle 效果就已经比较好了。

点击save保存

调试

窗口右边有蜘蛛「🕷️」图标 下方的Log下拉框 选择 all information便于查看调试信息

图片4102-Alfred工作流workflows实例 - 查询本地ip

启动

option+space启动 输入触发关键字
图片4097-Alfred工作流workflows实例 - 查询本地ip

下载

上面只是操作记录 这里可以直接下载:local ip.alfredworkflow
解压缩 直接打开alfredworkflow文件import导入

参考:
https://www.alfredapp.com/help/workflows/inputs/script-filter/json/
https://www.jianshu.com/p/7e1ea4f296c8
https://sspai.com/post/44624
https://www.jianshu.com/p/e9f3352c785f