${1:--} expandirá para a string "-" se não houver um parâmetro ou se o parâmetro estiver vazio.
Portanto, ./test.sh "" retornará a string "-", assim como o comando ./test.sh Isso é considerado um padrão útil em muitas circunstâncias, onde um argumento de "-" pode significar stdin ou stdout . Também garante que os scripts não sejam quebrados quando um parâmetro não for definido explicitamente.