在 bash 中,如果我运行kill %1
,它会杀死当前 shell 中的后台命令(我相信是最近的命令)。
鱼中有类似的东西吗?我在网上搜索了一下也没能找到它。
我不确定我是否做错了,但是
$ ps
PID TTY TIME CMD
73911 pts/5 00:00:00 fish
73976 pts/5 00:00:00 ps
$ sleep 100
^Z⏎
$ kill %1
$ ps
PID TTY TIME CMD
73911 pts/5 00:00:00 fish
74029 pts/5 00:00:00 sleep
74121 pts/5 00:00:00 ps
答案1
您的命令已生效,但由于作业已停止,因此它尚未响应信号。
从您的示例来看,它似乎不起作用,请尝试使用fg
或继续该进程bg
,或者使用 强制终止该进程kill -SIGKILL %1
,它将退出。
kill %1
在 bash 和 zsh 中立即工作,因为它是这些 shell 中的内置命令,并且SIGCONT
除了SIGTERM
(或指定信号)之外还发送。
答案2
Fish命令jobs
可以显示命令作业的 ID/组。要获取您想要运行的最新作业 ID,(jobs -gl)
请模拟%1
zsh/bash
因此
kill (jobs -lg)
会成功的