저는 bash
매뉴얼 페이지와 내 시스템(CentOS 6.7)의 스크립트를 읽고 bash
매뉴얼 페이지에서 내용을 찾아보았습니다. 이것은 좋은 연습이었습니다. 예를 들어 /etc/profile
위치 인수에 실제로 옵션이 없을 때 옵션이 설정되었는지 확인하는 방법을 배웠습니다 (그래서 작동하지 않습니다).-i
getopts
bash
그러나 다음 문장은 나를 완전히 어리둥절하게 만들었습니다. 매뉴얼 페이지에서 그 기능을 설명하는 내용을 찾을 수 없습니다 .
LESSOPEN="${LESSOPEN-||/usr/bin/lesspipe.sh %s}"
(이것은 의 줄의 일부입니다 /etc/profile.d/less.sh
.)
내가 뭔가를 놓치고 있는 걸까 man bash
?
응, 난예전에는뭔가 빠진 부분이 있습니다 man bash
: 설명 위에 '빠진 부분입니다' ${parameter:-word}
라고 적혀 있습니다 . Omitting the colon results in a test only for a parameter that is unset.
(그런데 "중복 가능성" 질문은 다루지 않습니다.)
할당된 기본값이 "or" 연산자 뒤의 스크립트 이름이라는 사실이 나를 더욱 혼란스럽게 합니다! :)
답변1
구체적 이지는 않지만 bash
1976년부터 Bourne Shell에 있었습니다.
Bourne Shell 매뉴얼 페이지를 확인하십시오.
http://schillix.sourceforge.net/man/man1/bosh.1.html
섹션을 확인하세요.매개변수 대체현재 7페이지부터 시작됩니다.
${parameter-word} Use Default Values. If parameter is unset,
the expansion of word is substituted;
otherwise, the value of parameter is substituted.
전체 개요는 다음과 같습니다.
| parameter nonnull | parameter null | parameter unset ___________________|___________________|_________________|________________ ${parameter:-word} | subst. parameter | subst. word | subst. word ___________________|___________________|_________________|________________ ${parameter-word} | subst. parameter | subst. null | subst. word ___________________|___________________|_________________|________________ ${parameter:=word} | subst. parameter | assign word | assign word ___________________|___________________|_________________|________________ ${parameter=word} | subst. parameter | subst. null | assign word ___________________|___________________|_________________|________________ ${parameter:?word} | subst. parameter | error, exit | error, exit ___________________|___________________|_________________|________________ ${parameter?word} | subst. parameter | subst. null | error, exit ___________________|___________________|_________________|________________ ${parameter:+word} | subst. word | subst. null | subst. null ___________________|___________________|_________________|________________ ${parameter+word} | subst. word | subst. word | subst. null ___________________|___________________|_________________|________________