$#
é o número de argumentos que você passou para o script bash, sem contar $0
, que é o nome do programa.
Exemplo:
#!/bin/bash
echo "Number of arguments is: $#"
Em seguida, execute:
% cuonglm at ~
% ./test.sh a b c d
Number of arguments is: 4