${HADOOP_CONF_DIR:-$HADOOP_PREFIX/$DEFAULT_CONF_DIR}
在hadoop-config.sh中,有如下语句:${HADOOP_CONF_DIR:-$HADOOP_PREFIX/$DEFAULT_CONF_DIR}
在这里面, :- 是一个运算符,叫做替换运算符:
附上测试方法:
在这个语法当中,: 是可以省略的,如果省略了冒号,那么语义就是判断是否存在:
在hadoop-config.sh中,有如下语句:
这个语句表示,如果BASH_SOURCE变量存在,则使用BASH_SOURCE的值,如果BASH_SOURCE的值不存在,那么就使用命令行参数的第一个值($0),即文件名。
如下面的例子:
使用sh –x test3.sh进行调试,可以看到每一步执行情况: