bash中的冒号破折号“:-”是啥意思[重复]

Posted

技术标签:

【中文标题】bash中的冒号破折号“:-”是啥意思[重复]【英文标题】: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

【问题讨论】:

tldp.org/LDP/abs/html/string-manipulation.html 寻找$string:position:length 你不明白马克 B 这个问题更有用,因为谷歌不搜索:- 【参考方案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”更准确。

以上是关于bash中的冒号破折号“:-”是啥意思[重复]的主要内容,如果未能解决你的问题,请参考以下文章

OIFS=$IFS是啥意思; IFS="|";在 bash 脚本中[重复]

C++,构造函数后的冒号是啥意思? [复制]

Python 方法签名中的 ->(破折号大于箭头符号)是啥意思? [复制]

TypeScript 这个语法“-?”是啥意思? (破折号问题)是啥意思?

C中的“静态”是啥意思?` [重复]

冒号的解释及造句