首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >alfred脚本“等待直到按键...”

alfred脚本“等待直到按键...”
EN

Stack Overflow用户
提问于 2018-07-19 17:53:39
回答 1查看 52关注 0票数 0

我尝试用alfred编写一个/bin/bash脚本,该脚本将在某一时刻暂停-并在用户按下键盘键(或其他快捷键)时继续执行。

我尝试了下面的bash-cmd命令(见下文),它会启动一个进程,然后在第二行尝试挂起相同的进程。但是,不幸的是,脚本只是继续运行而不会暂停!

代码语言:javascript
复制
/usr/local/bin/myProcessName $arg0

pkill -STOP -nf '/?(bash|sh)[ ]+(.*/)?'"myProcessName"'( |$)'

/usr/local/bin/myProcessName $arg1

这里的想法是为alfred提供另一个快捷脚本,以再次恢复相同的过程,例如:

代码语言:javascript
复制
pkill -CONT -nf '/?(bash|sh)[ ]+(.*/)?'"myProcessName"'( |$)'

但是再说一次,暂停一开始就没有起作用!

我还尝试给出进程名的完整路径,例如:(但没有区别-脚本中没有停顿!)

代码语言:javascript
复制
/usr/local/bin/myProcessName $arg0

pkill -STOP -nf '/?(bash|sh)[ ]+(.*/)?'"/usr/local/bin/myProcessName"'( |$)'

/usr/local/bin/myProcessName $arg1

否则我如何才能给alfred提供我需要的功能(即使用一个参数调用应用程序,然后让用户决定何时处理第二个参数(即“按键继续...”功能性?)

EN

回答 1

Stack Overflow用户

发布于 2018-07-19 19:14:34

我不确定这是否是您想要的,但是如果您尝试传递两个参数,一个在延迟之后,那么使用命名管道如何?

如果您创建一个命名管道

代码语言:javascript
复制
mknod /tmp/foo.pipe p

使用像这样的脚本,称之为stop.sh

代码语言:javascript
复制
#!/bin/bash

arg1=$1
arg2=$(cat <foo.pipe)

echo $arg1 $arg2

你可以跑

代码语言:javascript
复制
bash stop.sh foo

然后将第二个参数从另一个shell或进程写入管道

代码语言:javascript
复制
echo bar >>/tmp/foo.pipe

在将第二个参数写入管道之前,脚本将被阻塞。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51419563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档