Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Windows98/ME > shell 的两个
【标  题】:shell 的两个
【关键字】:shell
【来  源】:http://www.cublog.cn/u/23408/showart.php?id=255522

shell 的两个

Your Ad Here

shell 的两个 "time"

Created: Fang lungang 03-08-2007 Modified: Fang lungang 03-08-2007 22:04>

“time” 是 unix 下的一个工具,但同时也是 bash 等 shell 的关键字。两者都 是来测量时间,所以以前一直没注意到其实有两个“time”。

两者最明显的区别是输出格式不同,但更深层次的区别是:作为外部命令的 time, 被测量的程序名是 time 的参数,time 负责来调用相应的程序; 而作为关键字的 time 则是用来修饰测量的命令(准确的说应该是管道),我的理解是不论有没有 time 对被测试程序本身的运行方式没有影响。

time 作为 shell 关键字还有一个优点(引自 man page ):

The use of `time' as a reserved word permits the timing of shell builtins, shell functions, and pipelines. An external `time' command cannot time these easily.

由于两者本质的不同,导致相同的命令形式产生的结果却不太一样。以下是一些例 子。

输出格式的差异

[/home/lungangfang/tmp]type -a time
time is a shell keyword
time is /usr/bin/time
[/home/lungangfang/tmp]./a.out
stdout of program
stderr of program
[/home/lungangfang/tmp]time ./a.out
stdout of program
stderr of program

real 0m0.001s
user 0m0.000s
sys 0m0.000s
[/home/lungangfang/tmp]/usr/bin/time ./a.out
stdout of program
stderr of program
0.00user 0.01system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (82major+11minor)pagefaults 0swaps
[/home/lungangfang/tmp]
输出重定向行为的差异

关键字的输出重定向:

 [/home/lungangfang/tmp]time ./a.out 2> time.out
stdout of program

real 0m0.021s
user 0m0.000s
sys 0m0.000s

[/home/lungangfang/tmp]cat time.out
stderr of program

[/home/lungangfang/tmp](time ./a.out) 2> time.out
stdout of program

[/home/lungangfang/tmp]cat time.out
stderr of program

real 0m0.001s
user 0m0.000s
sys 0m0.000s

外部命令的输出重定向:

[/home/lungangfang/tmp]/usr/bin/time ./a.out 2> time.out
stdout of program

[/home/lungangfang/tmp]cat time.out
stderr of program
0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (82major+12minor)pagefaults 0swaps

[/home/lungangfang/tmp]/usr/bin/time -o time.out ./a.out
stdout of program
stderr of program

[/home/lungangfang/tmp]cat time.out
0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (81major+15minor)pagefaults 0swaps
install nix:【上一篇】
RFC2631 - Diffie-Hellman Key Agreement Method:【下一篇】
【相关文章】
  • BLP ch2:shell编程
  • Linux下在shell中启动gnome-terminal来运行程序
  • java 调用 shell 脚本
  • java 调用 shell 得到返回值
  • java 调用 shell 得到返回值(二)
  • 深入浅出Shell 编程:Unix/Linux 命令
  • ASP.NET木马及Webshell安全解决方案
  • IronPython整合Windows PowerShell
  • Linux下使用shell改文件内容
  • 写Shell了
  • 【随机文章】
  • sqlserver 2000企业管理器打不开
  • 逐步改用 IronPython 开发你的 ASP.NET 应用程序
  • 用flash动作脚本动态创建和控制文本框
  • 在vmware上成功的安装好了FC4的虚拟机
  • TCP/IP协议中的三个参数
  • 课件中巧添重复信息
  • 动态创建td及td中的事件
  • 标准i/o函数
  • 浅谈TeeChart组件在ASP中的应用
  • 试一下php解释器的代码高亮输出
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.