我正在尝试阅读以前没有使用过的shell脚本......这段代码做了什么?
# Setup some command defaults (can be overriden by the config)
MYSQL=${MYSQL:-`which mysql`}
MYSQLDUMP=${MYSQLDUMP:-`which mysqldump`}
PHP=${PHP:-`which php`}
我感觉它确定了php,mysql和mysqldump的位置,如果变量尚未定义的话。这是对的吗?
答案 0 :(得分:2)
如果变量未定义或为空字符串,则将其替换为which
命令的结果,以便将其用作默认值。
旁注,您可以使用type -P mysql
或hash mysql
代替which mysql
使其更加健壮,因为which
的实施可能会有所不同。
请参阅http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html和Check if a program exists from a Bash script