我在 bash 中有一个函数可以终止所有包含相同名称的进程:
killn () { pkill -9 -f $1; }
我意识到 tcsh 不支持函数。
我怎样才能将此函数转换为可在 tcsh 中起作用的别名?
答案1
首先,向偶然发现这篇文章的任何人发出警告:标志-f
将pkill
导致它使用每个进程的完整命令行(而不仅仅是进程的名称)来匹配您提供的模式。这会匹配更多进程,因此您最终可能会杀死比您预期更多的进程。小心!
由于传递的模式pkill
出现在命令的末尾,因此实际上不需要显式的参数处理,因此可以使用简单别名tcsh
:
alias killn pkill -9 -f
定义该别名后,如果您要发送SIGKILL
到其完整命令行包含匹配项的进程pattern
,你可以像这样使用别名:
killn pattern
它替代pkill -9 -f
了killn
,导致运行所需的命令:
pkill -9 -f pattern
请普通读者注意:这是一个tcsh
别名,其语法与别名不同bash
。