O problema aqui é que ps por padrão mostra apenas o comando base em sua saída, não a linha de comando inteira incluindo argumentos.
Se você iniciar seu script com bash TestEric.sh , o comando base será bash . Se você executá-lo como TestEric.sh (possivelmente incluindo seu caminho), o comando base será esse e não o bash.
Você pode usar facilmente pgrep em vez de ps para listar processos filtrados por nome. Ele tem um sinalizador -f que faz com que ele corresponda ao padrão fornecido em toda a linha de comando, em vez de apenas no comando base.
O sinalizador -a faz com que exiba toda a linha de comando em sua saída para fins de depuração, em vez de apenas o PID. Depois de verificar se funciona, você pode / deve removê-lo novamente no script.
Tente isto:
pgrep -f -a TestEric.sh
Mais tarde, você pode contar os processos usando wc contando as linhas de saída pgrep :
pgrep -f TestEric.sh | wc -l