LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1281|回复: 5

请教启动session的脚本。

[复制链接]
发表于 2007-11-6 20:27:36 | 显示全部楼层 |阅读模式

  1. #!/bin/sh

  2. if [ -f ~/.xinitrc ]; then
  3.     . ~/.xinitrc
  4. fi

  5. BGIMAGE="/usr/bin/feh --bg-scale ~/Pictures/bgimage"
  6. OPENBOX="/usr/bin/openbox"
  7. FBPANEL="/usr/bin/fbpanel"

  8. exec $BGIMAGE &
  9. exec $FBPANEL &
  10. exec $OPENBOX "$@"
  11. #exec $BGIMAGE &
复制代码

上面代码,是我openbox的启动脚本,被gdm直接调用。
无论我把BGIMAGE放在上述两个位置任意一个,都不能成功设置背景,但是当我把

  1. feh --bg-scale ~/Pictures/bgimage
复制代码

放入.xinitrc内,背景设置就成功了。

请教我的错误。
发表于 2007-11-7 01:00:25 | 显示全部楼层
$BGIMAGE &
$FBPANEL &
exec $OPENBOX "$@"

这样行不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-7 18:07:49 | 显示全部楼层
Post by huan;1778390
$BGIMAGE &
$FBPANEL &
exec $OPENBOX "$@"

这样行不行


加上exec和不加有什么区别呢?
回复 支持 反对

使用道具 举报

发表于 2007-11-8 09:01:40 | 显示全部楼层
exec不是就是运行程序的意思
我也犯过这种错误
exec是replace the current shell
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-9 20:23:25 | 显示全部楼层
Post by cosechy;1779037
exec不是就是运行程序的意思
我也犯过这种错误
exec是replace the current shell


原来如此,不过恕我愚钝,可以举例说明一下执行结果的不同吗?
回复 支持 反对

使用道具 举报

发表于 2007-11-10 02:56:54 | 显示全部楼层
exec要是后边加一个程序名,就是运行那个东西,结束当前的脚本,那个程序用当前脚本现在的pid
比如
(pidof bash;exec pidof pidof;echo not echoed)
可以看到pidof的pid是原来的一个bash的pid
然后原来的bash就已经结束了,后面的脚本不会运行
不过要是不加程序,只是重定向输入输出的话不会结束现在的脚本
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表