请解释这两行bash代码发生了什么
我现在正试图学习bash,遇到了一个脚本,我不能100%确定我是否读对了请解释这两行bash代码发生了什么,bash,Bash,我现在正试图学习bash,遇到了一个脚本,我不能100%确定我是否读对了 source_dir_123=${SOURCE_DIR:-/tmp} echo source_dir_123=$source_dir_123 这里发生了什么?我猜这是一种变量分配,但我觉得很奇怪。 这里发生什么类型的分配/操作?这些类型的作业有具体的名称吗? 对不起,我有一个新问题,但我不明白为什么你要用这些作业,而不是像这样更直截了当的东西 source_dir_12="/tmp" /tmp是source\u dir
source_dir_123=${SOURCE_DIR:-/tmp}
echo source_dir_123=$source_dir_123
这里发生了什么?我猜这是一种变量分配,但我觉得很奇怪。
这里发生什么类型的分配/操作?这些类型的作业有具体的名称吗?
对不起,我有一个新问题,但我不明白为什么你要用这些作业,而不是像这样更直截了当的东西
source_dir_12="/tmp"
/tmp
是source\u dir\u 123
的默认值。如果未设置source\u dir
,则将结果显示到控制台
请参见以下示例:
>echo$SOURCE\u DIR
>source_dir_123=${source_dir:-/tmp}
>回波源目录123=$source目录123
source_dir_123=/tmp
#现在让我们设置SOURCE_DIR
>SOURCE_DIR=/test
>source_dir_123=${source_dir:-/tmp}
>回波源目录123=$source目录123
source_dir_123=/test
echo source\u dir\u 123=$source\u dir\u 123
只输出source\u dir\u 123=
,然后输出该变量中存储的内容。如果它还没有值,那么/tmp
将存储在那里,因此完整的输出将是source\u dir\u 123=/tmp
。谢谢!Bash非常强大,但有时会有点混乱:)