No hay una forma "correcta" de transferir datos, como el contenido de esa variable de entorno, de un programa a otro. Hay múltiples opciones con distintos niveles de complejidad, fiabilidad, seguridad, etc.
Básicamente puedes hacer lo que más te convenga, desde lo más sencillo hasta lo más complejo. Por ejemplo, cuando sabes que tienes el servidor de visualización X en el ordenador local, la variable de entorno sólo contiene el número de visualización y el número de pantalla. Puedes dejar que el usuario introduzca esos valores por sí mismo, dejando que el shell script pregunte al usuario.
Una forma mucho más compleja sería configurar una base de datos SQL donde se pueda almacenar el valor de la variable de entorno. Podrías tener un programa ejecutándose en la sesión X que actualizara continuamente los datos para poder detectar que la sesión X se ha cerrado. Esto sería en casi todos los casos un enfoque terrible que es básicamente exagerado.
El término medio son los métodos sencillos, pero no demasiado sencillos, como tener un archivo con un nombre conocido donde se almacena el contenido. O puede tener una tubería con nombre establecido donde pueda recibir el contenido.