LinuxSir.cn,穿越时空的Linuxsir!

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

rc.sysinit中几句话看不懂,请问这是在做什么

[复制链接]
发表于 2006-8-16 16:35:36 | 显示全部楼层 |阅读模式

  1. last=0
  2. for i in `LC_ALL=C grep '^[0-9]*.*respawn:/sbin/mingetty' /etc/inittab | sed 's/^.* tty\([0-9][0-9]*\).*/\1/g'`; do
  3.       > /dev/tty$i
  4.       last=$i
  5. done
  6. if [ $last -gt 0 ]; then
  7.      > /dev/tty$((last+1))
  8.      > /dev/tty$((last+2))
  9. fi
复制代码


特别是那个for的写法看的晕乎晕乎的
发表于 2006-8-16 23:39:53 | 显示全部楼层
the whole for block is looping the tty number.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-18 11:59:35 | 显示全部楼层
自己来答吧
grep '^[0-9]*.*respawn:/sbin/mingetty' /etc/inittab 从文件中把关于终端的配置过滤出来通过管道传送给sed。下面是我机器上的配置情况:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
sed 's/^.* tty\([0-9][0-9]*\).*/\1/g'     将每一行中/^.* tty\([0-9][0-9]*\).*/也就是整行用\([0-9][0-9]*\)也就是tty*中的*来代替,这样最终结果是只剩下最后的一个数字
1
2
3
4
5
6
然后再执行for
回复 支持 反对

使用道具 举报

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

本版积分规则

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