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).