为什么脚本运行时间比普通的终端命令长?

时间:2017-03-27 18:21:27

标签: unix time tcsh

所以我写了一个非常愚蠢的剧本

#!/bin/env tcsh

ls-F --color=always -h

并将其另存为test.csh

现在当我time使用相同的命令和脚本时,这就是我所看到的

time ~/scripts/bin/test.csh 
....
Elapsed:0:04.63,User=3.733,System=0.329,CPU=87.4%.

如果我在终端

中运行命令
time ls-F --color=always -h
....
Elapsed:0:00.00,User=0.000,System=0.000,CPU=0.0%

我不理解内核/调度程序的内部工作,我只是想了解导致此延迟的原因

我正在使用

RHEL5 x86_64

tcsh作为我的shell

由于

1 个答案:

答案 0 :(得分:1)

当您运行脚本时,它正在创建和初始化新环境,引用点文件,脚本等。

运行终端命令时,它在已建立的环境中运行,不需要进行初始化。

您可以通过strace

查看正在进行的额外流程

尝试投放strace text.sh 2>&1 | tee out_script.txtstrace ls-F --color=always -h 2>&1 | tee out_noscript.txt

然后,您可以对这两个文件进行区分或比较,以查看设置新环境所需的其他步骤。