Я не знаю ни одного способа сделать это , как вы просили , поскольку изменение среды в вашей программе на Python просто изменит среду для нее и любых дочерних процессов, но не родительского процесса.
Тем не менее, если все, что вам нужно сделать, это иметь какую-нибудь программу на Python, которая вычисляет, каково значение переменной, в зависимости от вашей оболочки, вы должны иметь возможность просто присвоить вывод этой переменнойпеременная окружения:
#!/usr/bin/env python
# code goes here
print 'http://localhost:8080'
Если выше была ваша программа, вы можете запустить ее в оболочке, и для HUDSON_HOME установить значение http://localhost:8080:
$ set HUDSON_HOME=`python program.py`
Примечание. Это обратные пометки,как он знает, что получает результат выполнения команды вместо самой команды.