请解释我在shell脚本中找到的这些符号

时间:2014-04-29 18:39:28

标签: shell

我在shell脚本中看到以下行。

CATALINA_BASE=${CATALINA_BASE:-${APP_HOME}/tomcat}

:-是否像if声明一样?也就是说,如果环境变量$CATALINA_BASE存在,请将其值用于变量CATALINA_BASE

我也看到这一行:

APP_USER=${APP_USER:?}

?是什么意思?在这种情况下,没有-

1 个答案:

答案 0 :(得分:3)

${foo:-bar}${foo:bar}都是默认参数扩展。它们在扩展显式设置的空字符串方面有所不同(与null,未设置的字符串相反)。

有关这些内容的详细说明,请参阅http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.htmlhttp://mywiki.wooledge.org/BashFAQ/073http://mywiki.wooledge.org/BashSheet#Parameter_Operations