设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
编写简单函数的方法[欢迎讨论]
1
2
/ 2 页
下一页
返回列表
查看:
1377
|
回复:
11
编写简单函数的方法[欢迎讨论]
[复制链接]
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-1-28 23:54:28
|
显示全部楼层
|
阅读模式
才学到函数,跟大家讨论讨论 ;)
$function name
>{
>while
>sleep 5
>do ls > 1.txt
>done
>}
$name //执行.
复制代码
其中function是关键字,name是函数名
以 { 花括号开始 以 } 花括号结束
中间为语句,此处为举例.
通常来说执行一个函数要比使用.命令快得多.
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
Pye
Pye
当前离线
积分
570
IP卡
狗仔卡
发表于 2003-1-29 00:15:02
|
显示全部楼层
可以用declare -f查看已经定义的函数,注意,重启以后定义的函数就没有了,呵呵,到时候别哭阿,:)
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
楼主
|
发表于 2003-1-29 00:27:07
|
显示全部楼层
对.相应的typeset -f name 也可以查看 ;)
方便的话Pye兄能不能给咱具体唠唠关于函数的知识 ?
回复
支持
反对
使用道具
举报
显身卡
artou
artou
当前离线
积分
30
IP卡
狗仔卡
发表于 2003-1-29 10:12:54
|
显示全部楼层
怎么修改已经定义的函数呢?
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
楼主
|
发表于 2003-1-29 11:45:42
|
显示全部楼层
那就必须建立一个自己的函数库,,就是一个目录,这个目录存放按照所包含的函数命名的文件,必须要用FPATH保留变量指向这个目录,脚本必须用autoload关键字调用函数,...当然这个目录里的函数文件你是可以修改的了.;)
如果你只是在命令行中定义的函数,在退出shell的时候,他就不符存在啦~~
回复
支持
反对
使用道具
举报
显身卡
Pye
Pye
当前离线
积分
570
IP卡
狗仔卡
发表于 2003-1-29 21:04:33
|
显示全部楼层
也没有什么好说的,function就是和写程序的时候用的funcion一样,先定义后使用,也可以嵌套。都是由单条的语句组合起来的,呵呵,但是可以实现强大的功能。
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
楼主
|
发表于 2003-1-29 23:44:34
|
显示全部楼层
Pye兄说得对!
其实函数说复杂就复杂说简单就简单,平时我们打的许多命令,都是shell内制的函数,象cd,typeset等...它给我们带来很多便利!
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
楼主
|
发表于 2003-1-30 01:49:17
|
显示全部楼层
函数与脚本谁的执行速度快?
[javalee@Linux javalee]$ function a
> {
> echo ok
> }
[javalee@Linux javalee]$ a
ok
[javalee@Linux javalee]$ count=0
[javalee@Linux javalee]$ time for (( count=0 ; count<1000 ; count++))
> do
> a
> done > /dev/null
real 0m0.089s //执行函数所消耗时间
user 0m0.090s
sys 0m0.000s
[javalee@Linux javalee]$ time for (( count=0 ; count<1000 ; count++))
> do
> . a
> done > /dev/null
real 0m0.233s //执行脚本所消耗时间
user 0m0.191s
sys 0m0.035s
[javalee@Linux javalee]$ cat a
#! /bin/bash
echo ok
[javalee@Linux javalee]$
复制代码
回复
支持
反对
使用道具
举报
显身卡
Surf
Surf
当前离线
积分
254
IP卡
狗仔卡
发表于 2003-1-30 10:40:28
|
显示全部楼层
呵呵怎么参加发表回复就只有两位版主啊?
其他的兄弟去哪里了?
回复
支持
反对
使用道具
举报
显身卡
doooom
doooom
当前离线
积分
2954
IP卡
狗仔卡
发表于 2003-1-30 10:49:44
|
显示全部楼层
这儿,呵呵
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
计算机认证考试学习与经验交流
Mandriva Linux
C\C++
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表