在系统脚本/etc/init.d/sshd 、/etc/rc.d/init.d/firstboot
看到启动级别赋值的方式:
runlevel=$(set -- $(runlevel); eval "echo \$$#" )
有些不解,翻阅资料总结下我的理解:
1、set -- $(runlevel) 以提供的参数(命令runlevel得出的内容)取代位置参数,例如 set -- a b c 就是将位置参数设置为$1=a ,$2=b,$3=c 那么$#=3
2、$# 取到位置参数的总数,然后\$$# 得到的是相应的位置,本例即\$2 对应的值是3
3、eval 告知shell取出eval的参数并再执行一次,由上面可得出 eval "echo 3" 得出启动级别3
本文转自pandazhai 51CTO博客,原文链接:http://blog.51cto.com/dreamway/1045548