↓これを ./hoge.sh で実行する場合と
./hoge.sh 1.aac 2.aacで実行する場合とで比べてみて

#! /usr/bin/env bash

echo "¥$#: $#"
echo "¥$@: $@"
echo "¥$1: $1"
echo "¥$2: $2"
echo "¥$3: $3"

func() {
echo "---inside func---"
echo "¥$#: $#"
echo "¥$@: $@"
echo "¥$1: $1"
echo "¥$2: $2"
echo "¥$3: $3"
}

if [ $# -eq 0 ]; then
func *.aac
else
func "$@"
fi