은 :+
의 형태 파라미터 확장 :
$ {parameter : + [word]} : 대체 값을 사용하십시오.
매개 변수가 설정되지 않거나 null이면 null이 대체됩니다. 그렇지 않으면 단어의 확장 (또는 단어가 생략 된 경우 빈 문자열)이 대체됩니다.
즉, 변수 $var
가 정의 echo ${var:+foo}
되면 인쇄 foo
하고 그렇지 않은 경우 빈 문자열을 인쇄합니다.
두 번째 :
는 특별한 것이 아닙니다. 의 디렉토리 목록에서 구분 기호로 사용되는 문자입니다 $PATH
. 따라서 PATH="/usr/local/bin:/usr/bin${PATH:+:${PATH}}"
짧은 글쓰기 방법입니다.
if [ -z "$PATH" ]; then
PATH=/usr/local/bin:/usr/bin
else
PATH=/usr/local/bin:/usr/bin:$PATH
fi
설정되지 않은 :
경우 추가를 피하는 것이 현명한 방법입니다 $PATH
. 예를 들면 다음과 같습니다.
$ PATH="/usr/bin"
$ PATH="/new/dir:$PATH" ## Add a directory
$ echo "$PATH"
/new/dir:/usr/bin
그러나 PATH
설정되지 않은 경우 :
$ unset PATH
$ PATH="/new/dir:$PATH"
$ echo "$PATH"
/new/dir:
A :
자체는 현재 디렉토리를에 추가합니다 $PATH
. 사용 PATH="/new/dir${PATH:+:$PATH}"
하면 이것을 피할 수 있습니다. 따라서 PATH="${PATH:+${PATH}:}/usr/local/bin:/usr/bin"
원하는 경우 사용 하거나 원하는 PATH="$PATH:/usr/local/bin:/usr/bin"
경우 사용할 수 있습니다 . 유일한 차이점은 전자가 추가 :
를 추가하여 현재 디렉토리를에 추가 할 수 있다는 것 $PATH
입니다.