A questão tem a ver com a combinação dos conceitos de PATH e globbing.
Veja que o comando no seu shell script contapalavras não indica explicitamente que deve contar as palavras (wc -w
) no diretório ~/scripts.
Desta forma, apesar do diretório ~/scripts estar no $PATH e poder ser executado diretamente, o shell irá substituir *.txt por todos os arquivos que terminem em .txt apenas no diretório corrente ($PWD
) e se existirem.
Uma solução para o seu caso, supondo que você queira buscar apenas e sempre no diretório ~/scripts, seria colocar ele fixo no shell script da seguinte forma: wc -w ~/scripts/*.txt | grep total
.