2016-03-24 2 views
0

Я видел следующее использование скрипта.

export CONFIG=${X_CONFIG:-${Y_CONFIG}} 

Вопрос> В чем смысл настоящего скрипта?

Спасибо

+0

Действительно ли возникает вопрос, какой синтаксис X означает для каждой возможной синтаксической конструкции на языке? Это направление идет вниз. –

+0

... для соответствующих ссылок см. Http://wiki.bash-hackers.org/syntax/pe, http://mywiki.wooledge.org/BashGuide/Parameters#Parameter_Expansion, http://mywiki.wooledge.org/BashFAQ/073, http://tiswww.case.edu/php/chet/bash/bash.html#lbBB, http://mywiki.wooledge.org/BashSheet#Parameter_Operations и т. Д. –

+0

Как в стороне - все -caps имена переменных зарезервированы по соглашению для переменных со значением для оболочки или системы; см. четвертый абзац соответствующей спецификации по адресу http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html, резервируя пространство имен переменных с по меньшей мере одним строчным символом для использования в приложении. (Хотя для этой части спецификации POSIX явно указаны только переменные окружения, переменные оболочки совместно используют это пространство имен, поэтому к ним также применяется соглашение). –

ответ

2

${X_CONFIG:-${Y_CONFIG}}} является parameter expansion for a default value.

То есть: оно равно X_CONFIG, если установлено значение, отличное от нуля, или Y_CONFIG, если X_CONFIG было либо отменено, либо нулевым.

Таким образом, эффект от заявления в целом является назначение переменной CONFIG иметь одинаковое значение для любого $X_CONFIG или $Y_CONFIG, а также экспортировать эту переменную в окружающую среду.