您的位置:首页 > 运维架构 > Shell

linux学习--shell的脚本编程理解

2014-09-16 22:16 791 查看
底层硬件的调配和控制由linux内核负责,内核提供了API供我们编程调用,从而使用硬件资源。
库文件是更便于调用,功能更强大的公用接口,类似于API.可以认为是若干API的组合。
应用程序可以调用API来实现功能。也可以调用库文件,间接地调用API来实现功能。
shell是内核提供给用户的一个界面,用于用户和内核进行交互。
shell接收用户的操作指令,翻译成内核能够理解的类型,交给内核从而让内核来控制硬件执行。shell把运行结果转换成用户能识别的格式交给用户。
所以,shell也是一种命令解释器。

shell脚本是否可以执行,除了权限为可执行(x)外,还和文件的内容有关。
脚本第一行必须是 #!/pathToShell/shellName 比如#!/bin/bash
#! 叫shebang。出现在文本文件第一行的最前面两个位置。这种情况下,类unix操作系统的载入程序会分析shebang后的内容,并将这些内容作为解释器指令。载入程序将调用该解释器指令,并将该文本文件的名称作为该解释器的参数。(在shell中执行脚本,shell先读出脚本文件的第一行,分析是否有shebang,如果有,就将shebang后面的内容当做命令解释器,并调用,同时将该脚本的文件名当做参数($0)传递给这个解释器。命令解释器一般是个shell。调用命令解释器,一般是启动了一个子shell).

shell可以调用现成的程序,但是不能直接调用API。
shell脚本:ascii码格式的,用程序控制符将若干命令组合起来实现某种功能的特殊的文本文档。这种文档可以被shell理解并按照设计的逻辑来运行里面的命令。所以被称作可执行文档、脚本。
shell脚本类似于windows中的批处理。

程序代码:由语句和表达式组成表达式简单的可以理解成某语言的语法,而由这些语法构成的一条执行语句则是表达式语句。

面向过程的编程中,语句执行方式 1.顺序执行(默认)。
2.选择执行 程序分支,通过条件判断选择不同的分支去执行。
3.循环执行 将一段代码反复执行有限次,所以应该有退出条件。

编程语言的分类
按照执行方式分
1.动态语言:
所有语句解释执行,解释一句执行一句。变量在用到的时候才定义,不需提前定义。

如:perl、bash、python

2.静态语言:
源代码必须完全编译,生成可执行的二进制文后才能运行。变量要提前定义好。
如:c、c++

按照变量类型的限制
1.弱类型语言:
变量无需明确声明数据类型。默认都以字符格式存储。不便于存储和操作。如bash脚本

2.强类型语言:
变量必须明确声明数据类型,便于存储和操作。如 c、c++、python等

动态类型语言是弱类型的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息