Linux解释器原理详细介绍_Linux服务器维护_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Linux解释器原理详细介绍

作者:黑客防线网安linux教程网 来源:黑客防线网安linux教程网 浏览次数:0

本篇关键词:LinuxLinux教程Linux维护
黑客防线网安网讯:使用Shell进行工作的人们对Unix/Linux下的Shell编程都很熟悉,在所有的Shell编程的书中都会提到#!/bin/bash,而这里到底包含了些什么?对操作系统而言,这一行字符串意味着什么?你可能会说,不就是会让/bin/bash程序


像awk,perl,bash等程序对#开头的行当成注释行处理,就能写成有用的脚本。

再看下面的mysed程序。

代码:

Quote:
#!/bin/sed -f
s/UNIX/unix/p执行./mysed时出错了。

因为被解释成了"/bin/sed -f ./mysed",其中-f选项是表示以文件里的内容作为sed的命令输入,但sed的命令输入不能对"#!/bin/sed -f"解释,那么程序出错了。

所以,有用的解释器应该是类似bash,perl,awk的程序,并且能对一些规定的语句有解释功能的。下面给出一个awk程序写的统计文件行数和单词数的脚本程序myawk。

代码:

#!/usr/bin/awk -f
BEGIN {
sum = 0;
}
{sum += NF;}
END {
printf("file \"%s\" have %d line, %d words. ", FILENAME, NR, sum);
}设置执行位之后,执行如下:
代码:
$ echo -e "hi hello world">test.txt
$ ./myawk test.txt
file "test.txt" have 2 line, 3 words

这里执行./myawk被执行成“/usr/bin/awk -f ./myawk test.txt”,因为awk的命令中,以#开头的行被认为是注释行而忽略,awk忽略了第一行"#!/usr/bin/awk -f",正确的以非#开头行当成模式和命令的输入并能对其解释,所以这个程序是正确的,能被顺利地执行。
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-19208-1.html
网站维护教程更新时间:2012-12-07 00:14:06  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer