O SSH executa um shell remoto. Para obter um comportamento consistente para execução local, execute um shell local.
if [ "$P_SERV" = "$X_SERV" ] ; then
sh -c "$P_CMD" >> "$P_OUT"
else
ssh "$P_SERV" "$P_CMD" >> "$P_OUT"
fi
Não esqueça de aspas duplas em torno das substituições . Por exemplo, sem aspas duplas, se P_CMD
contiver curingas, elas seriam expandidas localmente em ssh $P_SERV $P_CMD
.