2009-09-15 50 views
0

有没有一种很好的方法来测试我是否登录到文本shell或在我的.bashrc中启动GUI会话?例如,如果在gnome和emacs中使用命令行,将我的编辑器设置为gedit。测试.bashrc中的GUI

回答

9

如果您登录到X会话,您的DISPLAY变量将被设置。

编辑:那么,这种(未经测试)代码应工作:

[ -n "${DISPLAY}" ] && export EDITOR=gedit || export EDITOR=emacs 

基于固定的意见。

+1

其实,你需要要么离开关-z或交换编辑器。 – 2009-09-15 00:54:04

+0

用-n替换-z也可以。 – 2009-09-15 14:36:15

+0

哎呦..谢谢。 – eduffy 2009-09-16 03:15:50

2

使用bash约定:

if [[ $DISPLAY ]]; then 
    export EDITOR=gedit 
else 
    export EDITOR=emacs 
fi