По умолчанию vnc использует порт 5901 для дисплея 1 и так далее. Поэтому вы можете использовать netstat, чтобы перечислить все прослушивающие процессы и вычислить дисплей из них:
export DISPLAY="$(netstat -ln |
awk '$4~/:59[0-9][0-9]$/{
v=$4; sub(/.*:/,"",v);
print ":" v-5900; exit}')"
Это предполагает, что ваш netstat выводит что-то вроде 0.0.0.0:5901
в поле 4. awk удаляет все до ":" и вычитает из него 5900. DISPLAY устанавливается в окружении для следующего firefox. Если вы хотите совместить это с запуском vncserver, поместите это в функцию, скажем getdisplay, и используйте ее следующим образом:
getdisplay(){
... as above
}
getdisplay
if [ -z "$DISPLAY" ]
then vncserver -name Computer
getdisplay
fi
firefox ...