Bash에서 이 줄은 무엇을 합니까? 매개변수-||스크립트 이름

Bash에서 이 줄은 무엇을 합니까? 매개변수-||스크립트 이름

저는 bash매뉴얼 페이지와 내 시스템(CentOS 6.7)의 스크립트를 읽고 bash매뉴얼 페이지에서 내용을 찾아보았습니다. 이것은 좋은 연습이었습니다. 예를 들어 /etc/profile위치 인수에 실제로 옵션이 없을 때 옵션이 설정되었는지 확인하는 방법을 배웠습니다 (그래서 작동하지 않습니다).-igetopts

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

구체적 이지는 않지만 bash1976년부터 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
  ___________________|___________________|_________________|________________

관련 정보