Z-Shell의 사용자 안내서 에서 다음을 읽었습니다 .
'true'의 동의어는 ':'입니다. 부작용이 있지만 사용해서는 안되는 인수를 제공하기 위해 종종이 형식으로 사용됩니다.
: ${param:=value}
이는 모든 Bourne 쉘 파생 상품의 공통 관용구입니다. 매개 변수 확장에서
$param
값이 이전에 비어 있으면 값을 제공하고 그렇지 않으면 그대로 둡니다. 이것이 매개 변수 확장의 유일한 이유이므로:
인수를 무시하는 데 사용 합니다. 실제로, 쉘은 명령 행 (콜론과 그 뒤에 값이 무엇이든간에$param
할당이 발생했는지 여부와 상관없이)을 명령 적으로 빌드 한 다음 명령을 실행합니다. ':'은 주어진 인수에 대해 아무런 통지도하지 않습니다.
그러나 나는 그것을 이해하지 못한다. 나는 그 :
의미를 얻지 true
만 표현에는 두 개의 콜론이 있습니다. 사소한 질문으로,이 관용구가 모든 Bourne 쉘 파생물에서 왜 그렇게 많이 사용됩니까? 어떤 목적으로 사용됩니까?
참고 : 이 관용구가 bash 및 zsh 에서 수행하는 작업에 관심이 있습니다.
감사
zsh
나bash
?