首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么/bin/kill的有效信号不同于kill?

为什么/bin/kill的有效信号不同于kill?
EN

Stack Overflow用户
提问于 2013-02-08 00:39:00
回答 1查看 2.1K关注 0票数 4

我正在尝试编写一个快速的bash脚本,在脚本检测到的特定条件下向程序发出信号,并且习惯于使用一些bin工具的完整路径,即/bin/rm/bin/kill,而不是rmkill。但是,对于kill,我注意到我可以发送的有效信号的不同之处,这让我感到困惑:

代码语言:javascript
复制
[root@linux]# which kill
/bin/kill

[root@linux]# /bin/kill -l
HUP INT QUIT ILL ABRT FPE KILL SEGV PIPE ALRM TERM USR1 USR2 CHLD CONT
STOP TSTP TTIN TTOU TRAP IOT BUS SYS STKFLT URG IO POLL CLD XCPU XFSZ
VTALRM PROF PWR WINCH UNUSED

[root@linux]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

我也没有kill的别名:

代码语言:javascript
复制
[root@linux]# alias 
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

显然,修复方法是只使用kill,但是如果which kill解析为/bin/kill,它们为什么会不同呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-08 00:47:24

kill是一个内置的bash。不幸的是,bash没有内置的which (就像zsh一样,它直接告诉我kill是一个内置的shell命令),并且/usr/bin/which没有办法知道您的shell内置的东西。(我希望bash有一些等效的东西来快速检查命令是否内置。不过,Successfull help kill对于交互使用来说已经足够了)。

正如@chepner在评论中所解释的那样,type -a COMMAND可用于获取COMMAND的可用变体列表:PATH上任何目录中的内置、别名、函数和二进制文件

代码语言:javascript
复制
$ type -a kill
kill is a shell builtin
kill is /bin/kill
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14756247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档