Se você quiser impedir que a saída de um programa apareça em qualquer lugar redirecionar para /dev/null :
guiprogram >/dev/null 2>&1
O fechamento de stdout só funciona se o programa souber como lidar com arquivos fechados.
Um uso prático de >&- é raro, você pode usá-lo se depois atribuir outro destino de saída a stdout e quiser ter certeza de que o canal de saída original foi fechado corretamente.