Para executar uma subshell use $(...)
no bash. E você não precisa redirecionar a entrada, mas simplesmente nomeie o arquivo de entrada. Então, omita o <
:
NUM_LINES=$(wc -l "$P")
Saída:
3 three_little_pigs.csv
Para se livrar do nome do arquivo, uma possibilidade (há muitos outros) é usar o awk:
NUM_LINES=$(wc -l "$P" | awk '{print $1}')
EDIT 1:
OK, usar o redirecionamento ( <
) omitirá o nome do arquivo ... desculpe;)
NUM_LINES=$(wc -l < "$P")