【问题标题】:what does "-${2:-15}" in mean in bash? [duplicate]bash 中的“-${2:-15}”是什么意思? [复制]
【发布时间】:2018-06-17 16:07:14
【问题描述】:

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

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

这是杀死进程,但不知道-${2:-15} 是什么意思。 谁能解释一下是什么意思?

【问题讨论】:

标签: bash shell sh


【解决方案1】:

表示扩展位置参数$2,如果为空则替换为15。因此,如果使用少于 2 个参数调用脚本,则命令将是:

kill -15 `cat $1.pid`

【讨论】:

  • 我相信:- 是替换语法的一部分,所以它实际上是-15
【解决方案2】:

<variable>:-<default> 语法表示“如果已定义,则使用 $<variable>。否则,使用 <default>”:

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

在这种情况下,$2 是一个位置参数,或者是您传递给脚本的第二个单词。这段代码使它成为可选的——如果它没有被使用或为空,它将默认为字符串15

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

例如,您可以使用:

script 123 9

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

如果您只是发送script 123,它将改为发送TERM

【讨论】:

猜你喜欢
  • 2014-04-08
  • 2016-12-10
  • 2023-03-12
  • 2012-04-19
  • 2021-02-11
  • 2017-03-18
  • 2021-05-04
  • 2013-08-08
  • 1970-01-01
相关资源
最近更新 更多