是什么" - $ {2:-15}"在bash中意味着什么?

时间:2018-01-08 16:31:53

标签: bash shell sh

我在bash脚本中看到了这一行

kill -${2:-15} `cat $1.pid`

它的杀戮过程但不知道-${2:-15}的含义。 任何人都可以解释它的含义吗?

2 个答案:

答案 0 :(得分:2)

这意味着展开位置参数$2,或者如果它为空则替换为15。因此,如果使用少于2个参数调用脚本,则命令将为:

kill -15 `cat $1.pid`

答案 1 :(得分:0)

<variable>:-<default>语法表示&#34;如果已定义,则使用$<variable>。否则,请使用<default>&#34;:

https://mywiki.wooledge.org/BashGuide/Parameters#Parameter_Expansion

在这种情况下,$2是位置参数,或者是传递给脚本的第二个单词。此代码使其成为可选代码 - 如果未使用或为空,则默认为字符串15

发送给-15的{​​{1}}标志告诉它要发送的信号类型......在这种情况下kill应允许进程正常退出。

例如,您可以使用:

TERM

这会将script 123 9 信号发送到KILL。我不确定cat 123.pid是什么,但它可能包含您要杀死的已知进程的进程ID。

如果您刚刚123.pid,则会发送script 123