0

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

我尝试了以下启动进程的 bash-cmd(见下文),然后在第二行尝试挂起同一进程。但是,不幸的是,脚本只是继续而没有暂停!

/usr/local/bin/myProcessName $arg0

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

/usr/local/bin/myProcessName $arg1

这里的想法是给 alfred 另一个快捷方式脚本,它可以再次恢复相同的过程,例如:

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

但是同样,暂停首先不起作用!

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

/usr/local/bin/myProcessName $arg0

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

/usr/local/bin/myProcessName $arg1

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

4

1 回答 1

1

我不确定这是否是您所追求的,但如果您尝试传入两个参数,一个延迟后,使用命名管道怎么样?

如果创建命名管道

mknod /tmp/foo.pipe p

并使用这样的脚本,调用它stop.sh

#!/bin/bash

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

echo $arg1 $arg2

你可以跑

bash stop.sh foo

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

echo bar >>/tmp/foo.pipe

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

于 2018-07-19T11:14:33.673 回答