${HADOOP_CONF_DIR:-$HADOOP_PREFIX/$DEFAULT_CONF_DIR}

 

在hadoop-config.sh中,有如下语句:${HADOOP_CONF_DIR:-$HADOOP_PREFIX/$DEFAULT_CONF_DIR}

image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在这里面:- 是一个运算符,叫做替换运算符:

image

 

 

image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

附上测试方法:

image

 

 

 

 

 

 

 

 

 

 

image

 

 

 

在这个语法当中,: 是可以省略的,如果省略了冒号,那么语义就是判断是否存在:

image

 

 

 

 

 

在hadoop-config.sh中,有如下语句:

image

 

 

 

 

 

 

 

 

这个语句表示,如果BASH_SOURCE变量存在,则使用BASH_SOURCE的值,如果BASH_SOURCE的值不存在,那么就使用命令行参数的第一个值($0),即文件名。

如下面的例子:

image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用sh –x test3.sh进行调试,可以看到每一步执行情况

image

原文地址:https://www.cnblogs.com/justinzhang/p/4237950.html