Co oznacza w bashu dwukropek i nawiasy klamrowe?

Analizuję sobie pewien kod napisany w bashu. Chciałbym wiedzieć konkretnie, co robi program zawierający ten fragment kodu. Jednak bash wydaje mi się trudny i rozumiem z niego niewiele ponad to, co spotkać można w języku batch w dosie.

Mam pytanie , co to tak na ludzki język by znaczyło:

${DEBIAN_SCRIPT_DEBUG:+ set -v -x}

Z góry dziękuję

Oznacza to:

Jeżeli parametr DEBIAN_SCRIPT_DEBUG ma gdzieś ustawioną wartość (nie jest NULL) zmienna zwróci wartość: “set -v -x”. Inaczej można było by to zapisać:

if [`echo $DEBIAN_SCRIPT_DEBUG` != NULL]; then

echo "set -v -x"

fi

Są inne operatory, takie jak :-, := oraz :?

http://www.gnu.org/s/bash/manual/html_n … -Expansion