2013-07-17 1 views
3

나는 bash는 스크립트에 다음과 같은 라인에서 찾고 :

: ${ROOT_DIR:="."} 

나는 두 번째 부분은 현재 작업 디렉토리에 ROOT_DIR 변수를 설정하는 확장 것을 이해 생각합니다. 그러나, 나는 ROOT_DIR이 특별한 환경 변수인지 또는 일반적인 변수인지는 확실하지 않다.

또한 ":"콜론은 정확히 무엇을합니까?

답변

5

ROOT_DIR은 특별한 것이 아니며,이 쉘 스크립트가 사용하는 변수 일뿐입니다. : 아무 작업도 수행하지 않습니다. 특히 여기서는 보조 명령으로 :=의 부작용을 적용하여 기본값을 ROOT_DIR에 할당합니다. 당신은 bash는 man 페이지에서 좀 더 세부 사항을 얻을 수 있습니다 :

: [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. 
관련 문제