$ {HTTPD -...} синтаксис Perl - PullRequest
       9

$ {HTTPD -...} синтаксис Perl

0 голосов
/ 18 января 2010

Хорошо, я не могу понять это, прочитав документацию Perl. Я смотрю на скрипт инициализации RHEL4 для Apache ... Что делает эта строка кода?

httpd=${HTTPD-/usr/sbin/httpd}

Почему не просто httpd=/usr/sbin/httpd? Что случилось со всем дополнительным синтаксисом?

-Джеффри Ли

Ответы [ 2 ]

6 голосов
/ 18 января 2010

Это не Perl, его оболочка. Сценарии инициализации обычно пишутся в оболочке. В частности, это означает «если определено, использовать переменную среды HTTPD, в противном случае используйте /usr/sbin/httpd".

Смотрите здесь для получения дополнительной информации.

2 голосов
/ 18 января 2010

Двоеточие влияет на то, проверяется ли переменная на наличие сброса или на ноль, а не только на проверку того, не сброшена ли она.

$ var="goodbye"; echo ${var-hello}
goodbye
$ var="goodbye"; echo ${var:-hello}
goodbye
$ var= ; echo ${var:-hello}
hello
$ var= ; echo ${var-hello}    # var is null, only test for unset so no sub. made

$ unset var; echo ${var:-hello}
hello
$ unset var; echo ${var-hello}
hello

Со страницы руководства Bash:

       When not performing substring expansion,  using  the  forms  documented
       below,  bash tests for a parameter that is unset or null.  Omitting the
       colon results in a test only for a parameter that is unset.

       ${parameter:-word}
              Use Default Values.  If parameter is unset or null,  the  expan‐
              sion  of word is substituted.  Otherwise, the value of parameter
              is substituted.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...