我想kill --verbose ...
在 bash 脚本中使用,但出现错误kill: -verbose: invalid signal specification
。这很奇怪,因为它在鱼中效果很好。我的调查让我发现了这种奇怪的行为:
$ which kill
/usr/bin/kill
$ sleep 5 & kill --verbose $!
[1] 33730
bash: kill: -verbose: invalid signal specification
... wait for sleep to finish ...
[1]+ Done sleep 5
$ sleep 5 & /usr/bin/kill --verbose $!
[1] 33964
sending signal 15 to pid 33964
[1]+ Terminated sleep 5
到底是怎么回事?为什么kill
不能识别该--verbose
标志,但当==/usr/bin/kill
时却可以识别?which kill
/usr/bin/kill
答案1
which
具有误导性;尝试type
改为:
$ type kill
kill is a shell builtin
当您运行 时kill
,bash 使用其内置命令,该命令无法识别--verbose
.当您指定完整路径时,将改为运行外部命令/usr/bin/kill
,这确实支持--verbose
(在您的情况下)。