2012-02-25 68 views
2

我正在嘗試閱讀我以前沒有用過的shell腳本......這段代碼做了什麼?這個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的位置,如果變量尚未定義。那是對的嗎?

+2

http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion – 2012-02-25 14:59:40

回答

2

如果變量未定義或者是空字符串,則將其替換爲which命令的結果,以便將其用作默認值。

側面說明,你可以把使用type -P mysqlhash mysql代替which mysqlwhich實現可能不同,它更加堅固。

看到http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.htmlCheck if a program exists from a Bash script

+1

第一句應該開始「如果變量未定義或空字符串「,因爲操作符是': - '而不是' - '。 – 2012-02-25 17:34:05

+0

修復了,謝謝 – 2012-02-25 18:38:40