LinuxSir.cn,穿越时空的Linuxsir!

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

不懂得引用函数和返回值

[复制链接]
发表于 2003-11-1 16:46:37 | 显示全部楼层 |阅读模式
每次装系统,系统都默认启动很多服务,其实只要syslog,crond,network ,iptablesxfs( level 5)就行了。
linux# cat test
#!/bin/bash
count() #此函数的作用是计算有多少项服务。
{
a=0
for i in $(chkconfig --list|awk '{print $8}')
do
a=$(($a+1));echo $a
if [ $i == NULL ] ;then
echo $a;return $a
exit 1
fi;done
}
#b=count
#echo "$b"
for i in $(chkconfig --list|head -n `count`|awk '{ print $1}');do#这里有问题。
      chkconfig --level 35 $i off # 把所有的35运行等级的服务都设为off
done
chkconfig --level 5 xfs on
chkconfig --level 35 network on
chkconfig --level 3 syslog on
chkconfig --level 35 iptables on
chkconfig --level 35 crond on
echo "--- level 3 ---"
chkconfig --list|grep "3n"
echo "--- level 5 ---"
chkconfig --list | grep "5n"
unset a;unset b;unset i
linux#

请问怎么引用函数:ask :ask
发表于 2003-11-1 18:25:05 | 显示全部楼层
在脚本中,把count()执行的结果赋值给某个变量.
b=`count`
你总在装系统吗? :ask ,另外,在linux中有设定启动服务的setup,为什么不用呢?!或者用chkconfig也可以设定/删除服务呀. (BSD的不懂!)
 楼主| 发表于 2003-11-1 22:56:13 | 显示全部楼层
谢谢版主,是的,近来老要重装系统。我已装了8次了。现在终于弄好了。呵呵`~~~
这脚本适用于redhat8.09.0的系统。
现在写好了,献给大家,只是在中文环境输出不好。但已达到效果了。
linux# cat test
count()
{
a=0
for i in $(chkconfig --list|awk '{print $8}') ;do
a=$(($a+1))
if [ $i == NULL ] ;then
return $a;exit 1
fi;done
}
b=`count`
for i in $(chkconfig --list|head -n $b|awk '{ print $1}');do
chkconfig --level 35 $i off
done
chkconfig --level 5 xfs on
chkconfig --level 35 network on
chkconfig --level 3 syslog on
chkconfig --level 35 iptables on
chkconfig --level 35 crond on
echo "--- level 3 ---"
chkconfig --list|grep "3n"
echo "--- level 5 ---"
chkconfig --list | grep "5n"
unset a;unset b;unset i
#end
发表于 2003-11-2 00:24:18 | 显示全部楼层
谢谢develMM
(好像最后的几个unset是不是多余?,,,)
 楼主| 发表于 2003-11-2 13:09:25 | 显示全部楼层
最初由 javalee 发表
谢谢develMM
(好像最后的几个unset是不是多余?,,,)


我试了,是的,多余,我是看见有的脚本有,我就加上去了。没想到加不加都一样,要是程序出错,那几个变量还存在吗?
发表于 2003-11-2 14:44:42 | 显示全部楼层
因为你的脚本是在一个子shell中执行的,当结束这个子shell的脚本返回当前shell后,在子shell中定义的变量都不复存在啦~~,所以我认为加unset意义不大 ,至于程序出错的处理,可以用-v来先进行调试.
发表于 2003-11-5 15:43:20 | 显示全部楼层
此脚本实际没什么意义,不过拿来当练习到是不错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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