Я только что обнаружил
default="no parameter provided"
echo ${1:-$default} # in a script
Как это называется? Это встроено? Работает так, как выглядит, работает?
решение1
Это частьрасширение параметра оболочкии встроен влюбая оболочка POSIX:
${parameter:-word}
Еслипараметрне установлен или равен нулю, расширениесловоподставляется. В противном случае значениепараметрзаменяется.
В вашем примере, если не установлено или не равно нулю, выводится его значение, в противном случае вместо него выводится ${1}
значение .${default}
решение2
Это Parameter Expansion
, описано в вСтраница руководства Bashкоторый вы также можете вызвать локально с помощью man bash
:
${parameter:-word}
Use Default Values. If parameter is unset or null, the
expansion of word is substituted. Otherwise, the value
of parameter is substituted.