Ne pas imprimer le PID d’un processus

J’essaie d’imprimer le PID des processus en cours d’exécution avec la commande “lsof”.

Il semble que je reçoive le bon PID, mais je ne peux pas l’imprimer avec la commande “echo”.

En ce qui concerne le script bash suivant:

#!/bin/bash portsArr=(4003 4200) for port in "${portsArr[@]}" do PID_OF_EXISTING_PROCESS=$(lsof -ti:"$port") if [ -z "$PID_OF_EXISTING_PROCESS" ]; then echo "Process was already running on port: $PID_OF_EXISTING_PROCESS" fi done 

La sortie est

Le processus était déjà en cours d’exécution sur le port:

Ce qui signifie qu’un PID a été identifié (la commande “if” a atteint ce point plus j’ai fait un peu plus d’écho et j’ai vu qu’un PID_OF_EXISTING_PROCESS était égal à 4003 à ce point), mais pour une raison quelconque n’a pas été imprimé dans “echo “commande.

 if [ -z "$PID_OF_EXISTING_PROCESS" ]; 

Ce test ne passe que si la chaîne est vide. Utilisez -n pour vérifier qu’il n’est pas vide.

 if [ -n "$PID_OF_EXISTING_PROCESS" ];