Alfred实现一键登陆OpenConnect VPN
经常需要登陆公司VPN,一直使用脚本登陆,但还是不够高效,于是为了节约时间,利用Alfred来实现一键VPN。
Workflow
workflow中的关键点有以下几步
- keyword获取用户输入的手机验证码
- 临时存储keyword到变量中,原因是还需要用户进一步选择服务器节点
- list filter的keyword随便输入一个且与第一步的keyword不同即可
- 脚本使用了expect,所以最终执行需要terminal command,无法选择
Run Script
- 因为系统密码及VPN账户我走的workflow环境变量而command是不支持环境变量解析,所以增加Run Script解析变量
shell脚本
Run Script
1 | echo "/Users/qhe/Documents/Shell/vpn.sh $code {query} $mac_password $username $password" |
变量解释
- query即验证码
mac_password
即Mac笔记本密码username
即vpn登录用户名password
即vpn用户密码
注意
- workflow中的变量和环境变量在shell解析都是$name来解析
- 如上,这里打印出最终终端想执行的命令,包含了变量
- 注意Shell脚本如果没有执行权限了,需要
+x
Terminal Command
只需要解析了query即可,{query},即上一步打印的结果
1 |
|
写在最后
之前一直不懂如何在Alfred中让用户进行多次输入操作,现在明白了,如上keyword加listFilter即可实现。而为了保存用户每次操作后的值,使用var and arg进行保存。