# find_free_port # --------------- # Busca el primer puerto libre en un rango dado. # Imprime el puerto encontrado a stdout. # Sale con exit code 1 si no encuentra ninguno. # # USO (sourced): # source find_free_port.sh # port=$(find_free_port 8888 8899) find_free_port() { local start="${1:-8888}" local end="${2:-8899}" for ((port=start; port<=end; port++)); do if ! ss -tln 2>/dev/null | grep -q ":${port} " && \ ! lsof -i:"$port" >/dev/null 2>&1; then echo "$port" return 0 fi done echo "find_free_port: no se encontro puerto libre en rango ${start}-${end}" >&2 return 1 }