如何判断当前的shell环境是不是X

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
lxnnix
帖子: 89
注册时间: 2007-08-19 22:24
来自: 南京

如何判断当前的shell环境是不是X

#1

帖子 lxnnix » 2010-01-17 11:08

如何判断当前的shell环境是不是X

要在.zshrc里做一个判断,如果是X环境,就初始化一些X变量,如果不是就不执行,否则老是会报:
xset: unable to open display ""
LXLE了。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何判断当前的shell环境是不是X

#2

帖子 eexpress » 2010-01-17 20:17

perl的

代码: 全选

if(! -t STDOUT)
bash的
if [[ $(tty) =~ dev ]];
● 鸣学
头像
yingfei
帖子: 273
注册时间: 2007-09-03 18:34
来自: 羊城通

Re: 如何判断当前的shell环境是不是X

#3

帖子 yingfei » 2010-01-19 17:05

Ubuntu下,
终端中 tty 的输出是 /dev/tty[1-6]
gnome 环境下 tty 输出是 /dev/pts/*

所以判断是否是在 gnome 环境中应该是

代码: 全选

if [[ $(tty) =~ pts ]]; then
神说的那个不知是哪个环境。
  • Ubuntu 10.10 ~
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 如何判断当前的shell环境是不是X

#4

帖子 c\nc » 2010-01-20 16:20

判断 $DISPLAY 也行吧??
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 如何判断当前的shell环境是不是X

#5

帖子 xiooli » 2010-01-20 16:34

tty | grep tty && startx
记得是 ee 大婶的巨强悍的开 X 判断 :em05
cosechy
帖子: 82
注册时间: 2008-03-06 4:56

Re: 如何判断当前的shell环境是不是X

#6

帖子 cosechy » 2010-01-21 4:40

用ssh连接服务器的时候好像也是pts
应该是检查$DISPLAY比较好
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

Re: 如何判断当前的shell环境是不是X

#7

帖子 roylez » 2010-01-21 7:13

代码: 全选

[ -n "$DISPLAY" ] && echo in X
弄个dropbox空间来备份文件或者做私人代码服务器
配置:[url]git://github.com/roylez/dotfiles.git[/url]
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 如何判断当前的shell环境是不是X

#8

帖子 tusooa » 2010-01-23 22:20

代码: 全选

if [ "$TERM" = linux ] ; then
    echo "This is the Linux console."
else
    echo "This is a GUI terminal."
fi

代码: 全选

] ls -ld //
头像
lxnnix
帖子: 89
注册时间: 2007-08-19 22:24
来自: 南京

Re: 如何判断当前的shell环境是不是X

#9

帖子 lxnnix » 2010-01-31 16:01

多谢各位,已解决!

代码: 全选

if [ -z "$DISPLAY" ] ; then
    echo "This is the Linux console."
else
    echo "This is a GUI terminal."
fi
:em05 :em05 :em05
LXLE了。
cutefrog
帖子: 2
注册时间: 2010-03-01 22:54

Re: 如何判断当前的shell环境是不是X

#10

帖子 cutefrog » 2010-03-02 10:24

$SHELL这个变量里面存储的就是当前使用的shell类型和路径。
回复