【问题标题】:What does the colon dash ":-" mean in bash [duplicate]bash中的冒号破折号“:-”是什么意思[重复]
【发布时间】:2015-02-11 06:30:28
【问题描述】:

结果是想要的;经过一些试验和错误。我不明白“2:-”和“3:-”是什么意思。谁能解释一下。

#!/bin/bash
pid=$(ps -ef | grep java | awk ' NR ==1 {print $2}')

count=${2:-30}  # defaults to 30 times
delay=${3:-10} # defaults to 10 second
mkdir $(date +"%y%m%d")
folder=$(date +"%y%m%d")
while [ $count -gt 0 ]
do
    jstack $pid >./"$folder"/jstack.$(date +%H%M%S.%N)
    sleep $delay
    let count--
    echo -n "."
done

【问题讨论】:

标签: bash shell syntax semantics


【解决方案1】:

这是一个参数扩展,意思是如果第三个参数为null或未设置,则将其替换为后面的内容 :-

$ x=
$ echo ${x:-1}
1
$ echo $x

$

如果变量为空,还有另一个类似的 PE 赋值:

$ x=
$ echo ${x:=1}
1
$ echo $x
1

查看http://wiki.bash-hackers.org/syntax/pe

【讨论】:

  • 感谢 sputnick 的解释。
  • 与其说“void”,不如说“unset or null”更准确。
猜你喜欢
  • 2012-03-25
  • 1970-01-01
  • 2012-10-09
  • 2012-09-25
  • 2019-09-14
  • 1970-01-01
  • 2018-11-21
  • 2012-05-10
相关资源
最近更新 更多