请解释一下这2行bash代码的情况

时间:2019-10-31 09:38:33

标签: bash

我正试图立即学习bash,遇到了一个脚本,但我不确定100%是否正确阅读了。

source_dir_123=${SOURCE_DIR:-/tmp}
echo source_dir_123=$source_dir_123

这是怎么回事?我想这有点变数,但对我来说似乎很奇怪。 在这里发生什么类型的分配/操作?这些作业类型有什么具体名称吗? 对不起,我想问一个新问题,但是我不明白为什么您会使用这些作业而不是像

source_dir_12="/tmp"

1 个答案:

答案 0 :(得分:2)

/tmpsource_dir_123的默认值,以防未设置SOURCE_DIR,然后将结果显示到控制台。

请参见以下示例:

> echo $SOURCE_DIR

> source_dir_123=${SOURCE_DIR:-/tmp}
> echo source_dir_123=$source_dir_123
source_dir_123=/tmp
# now let's set SOURCE_DIR
> SOURCE_DIR=/test
> source_dir_123=${SOURCE_DIR:-/tmp}
> echo source_dir_123=$source_dir_123
source_dir_123=/test