2013-07-17 2 views
3

Я смотрю на следующую строку в Баш скрипт:

: ${ROOT_DIR:="."} 

Я считаю, что я понимаю, что вторая часть является расширением, который устанавливает переменную ROOT_DIR в текущей рабочей директории. Однако я не уверен, является ли ROOT_DIR специальной переменной среды или просто общей.

Кроме того, что именно делает двоеточие «:»?

ответ

5

ROOT_DIR не является особым, это просто переменная, с которой этот сценарий используется. : ничего не делает. В частности, он используется здесь как фиктивная команда, чтобы вступить в силу побочный эффект :=, присвоив значение по умолчанию ROOT_DIR. Вы можете получить более детальную информацию со страницы Баша человека:

: [arguments] 
      No effect; the command does nothing beyond expanding arguments and 
      performing any specified redirections. A zero exit code is returned. 

«нарастающих аргументы» является важной частью здесь, это позволяет происходить назначение по умолчанию.

${parameter:=word} 
      Assign Default Values. If parameter is unset or null, the expansion of 
      word is assigned to parameter. The value of parameter is then substituted. 
      Positional parameters and special parameters may not be assigned to in this way. 
Смежные вопросы