Retire a última linha da wc saída se houver poucas linhas para você desejar um total geral.
word_counts=$(wc -l -- "$@")
newline='
'
if [ "$#" -le 9 ]; then
word_count=${word_count%"$newline"*}
fi
printf '%s\n' "$word_count" >>"$1"
Observe as aspas duplas em "$@" e em torno de outras substituições de variáveis, sem isso, o script quebraria os nomes dos arquivos que contêm espaço em branco (e alguns outros caracteres especiais) sem absolutamente nenhum benefício de redenção. Observe também -- in wc -l -- "$@" , no caso de um nome de arquivo começar com - (sem -- , wc interpretaria esse nome de arquivo como uma opção).