以下のソースを見てください。
#!/usr/bin/bash
echo $1
echo $2
echo $3
echo $4
echo "sum:"$#
set a b c
echo $1
echo $2
echo $3
echo $4
echo "sum:"$#
これはsetコマンドを使用してスクリプト内で引数を変更しています。
この時、引数の数を格納する$#の内容も変更されます。
また、上記スクリプトは題4引数がセットされていませんが、この場合、題4引数には何もセットされませんので注意してください。