Apenas reutilize a primeira variável:
psaux="$( ps aux | grep "someProcessName" )"
pscount="$( printf '%s\n' "$psaux" | wc -l )"
O comando grep
é chamado apenas uma vez.
O resultado dessa chamada é reutilizado para contar as linhas.
Digamos que eu tenha 2 variáveis que estou atribuindo da seguinte maneira:
psaux='ps aux | grep someProcessName'
pscount='ps aux | grep someProcessName | wc -l'
Eu gostaria de combinar as atribuições em uma linha, para que a parte "ps aux | grep someProcessName" seja executada apenas uma vez, então eu sei que não há possibilidade de que algo possa mudar entre duas execuções.
O mais próximo que posso chegar é o seguinte pseudocódigo grotesco:
read psaux pscount <<<$(ps aux | grep someProcessName | tee &1 | wc -l)