26a83a43ec
${#VAR:-foo} (or any other modifier on ${#VAR} is a syntax error. On the other hand ${##} is not, nor is ${##13} though they mean quite different things (the latter is an idiom everyone should learn, ... $# except we refuse to admit the possibility that it is 13... Even I cannot explain what ${#-foo} used to do, but it wasn't sane! (It should be just $# as $# is never unset, but ...) Shell syntax is truly a wondrous thing!