Parece que você está tentando encontrar dinamicamente a variável que um usuário tem em seu ambiente a partir de um script já em execução à medida que cada processo é criado?
Um método que usei para resolver isso é encontrar o PID e usar o PID para analisar as variáveis de ambiente do processo de / proc / PID / environ. Isso só funciona se o PID herdar as variáveis.
pid=1234 # replace with pid finding method
unset thisbus # in case this snippet gets pasted into a loop
[ -f /proc/$pid/environ ] && thisbus="$(sed 's/^.*\x0DBUS_SESSION_BUS_ADDRESS=\([^\x0]*\)\x0.*$//' /proc/$pid/environ)"
[ -z "$thisbus" ] && echo "not found" || echo "$thisbus"