shell脚本的美元括号内的减号是什么意思?

在现有的shell脚本中,我看到一些引用的variables,包括或以负号结尾。 例如:

PID=${PID-/run/unicorn.pid} 

和:

 run_by_init() { ([ "${previous-}" ] && [ "${runlevel-}" ]) || [ "${runlevel-}" = S ] } 

在这两种情况下,减号是什么意思?

根据bash手册页中的“Parameter Expansion”部分,这意味着“如果参数未被设置,则使用默认值”。 所以例如,

 ${PID-/run/unicorn.pid} 

如果设置了$ PID,则等于$ PID,否则为/run/unicorn.pid。