所以我写了一个非常愚蠢的剧本
#!/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
由于
答案 0 :(得分:1)
当您运行脚本时,它正在创建和初始化新环境,引用点文件,脚本等。
运行终端命令时,它在已建立的环境中运行,不需要进行初始化。
您可以通过strace
尝试投放strace text.sh 2>&1 | tee out_script.txt
和strace ls-F --color=always -h 2>&1 | tee out_noscript.txt
然后,您可以对这两个文件进行区分或比较,以查看设置新环境所需的其他步骤。