쉘 스크립트에서 `:-`는 무엇을 의미합니까?

쉘 스크립트에서 `:-`는 무엇을 의미합니까?

나는 훌륭한 쉘 스크립트의 끝에서 이것을 보았지만 더 긴 명령이 누락된 것 같아서 여기서 논리를 이해할 수 없습니다.

spark ${@:-`cat`}

마지막에 이런게 나오네요이 스크립트. 어떤 아이디어가 있나요?

+ 속도가 느리더라도 이를 완전한 코드 조각으로 확장한 사람에게 플래그를 지정하세요(더 나은 설명)

답변1

이는 매개변수 대체의 첫 번째 특수한 경우입니다 man bash.

${parameter:-word}
기본값을 사용합니다. 설정되지 않거나 null인 경우 parameter대체할 확장자입니다. 그렇지 않으면 word값이 대체됩니다.parameter

언급한 경우 사용자가 명령줄에 인수를 제공하면 사용되거나 사용자가 표준 입력에 인수를 입력해야 합니다.

답변2

Afaik :-기본적으로: $@OR `cat`( $@로 설정되지 않음 `cat`)을 사용하세요...

그래서 일부 변수 대체 항목...

편집: 그래서 일종의 대화형 입력을 제공합니다...

다음은 터미널 테스트입니다.

localhost:~ _druu$ echo ${@:-`cat`}
hello
world
;)
^\hello world ;)
localhost:~ _druu$ 

관련 정보