it-gundan.com

스크립트에서 변수 할당에 "$ {a : -b}"사용

다른 사람들이 작성한 몇 가지 스크립트 (특히 Red Hat)를 살펴 보았으며 많은 변수가 다음 표기법 VARIABLE1="${VARIABLE1:-some_val}" 또는 다른 확장 변수 VARIABLE2="${VARIABLE2:-`echo $VARIABLE1`}"를 사용하여 할당되었습니다.

값을 직접 선언하는 대신이 표기법을 사용하는 요점은 무엇입니까 (예 : VARIABLE1=some_val)?

이 표기법이나 이점으로 인해 예방할 수있는 이점이 있습니까?

이 문맥에서 :-는 특별한 의미가 있습니까?

499
Rothgar

개인적인 경험.

필자는 때때로 스크립트에서이 형식을 사용하여 값을 임시로 재정의합니다 (예 : 만약 내가 가지고 있다면:

$ cat script.sh
SOMETHING="${SOMETHING:-something}"; echo "$SOMETHING"; 

나는 뛸 수 있습니다:

$ env SOMETHING="something other than the default value" ./script.sh` 

원래 기본값 인 SOMETHING을 변경하지 않아도됩니다.

10
h.j.k.