我怎样才能在 tcsh 中创建与此 bash 函数等效的函数?

我怎样才能在 tcsh 中创建与此 bash 函数等效的函数?

我在 bash 中有一个函数可以终止所有包含相同名称的进程:

killn () { pkill -9 -f $1; }

我意识到 tcsh 不支持函数。

我怎样才能将此函数转换为可在 tcsh 中起作用的别名?

答案1

首先,向偶然发现这篇文章的任何人发出警告:标志-fpkill导致它使用每个进程的完整命令行(而不仅仅是进程的名称)来匹配您提供的模式。这会匹配更多进程,因此您最终可能会杀死比您预期更多的进程。小心!

由于传递的模式pkill出现在命令的末尾,因此实际上不需要显式的参数处理,因此可以使用简单别名tcsh

alias killn pkill -9 -f

定义该别名后,如果您要发送SIGKILL到其完整命令行包含匹配项的进程pattern,你可以像这样使用别名:

killn pattern

它替代pkill -9 -fkilln,导致运行所需的命令:

pkill -9 -f pattern

请普通读者注意:这是一个tcsh别名,其语法与别名不同bash

相关内容