${var:-default}
оценивается как значение $var
, если $var
не установлено, и в этом случае оно оценивается как текст "default"
. $1
, $2
и др. - аргументы командной строки вашей программы (или функции). Соединение этих двух значений означает возвращение $2
, если передано два аргумента, в противном случае возвращает $1
.