Linux学习笔记四:Shell编程
什么是Shell ? 简单地讲,shell就是一个命令解析器,把你输入的命令解析给系统“听”,也就是执行。
shell的种类有很多,其中有Bourne shell(sh) Korn shell(ksh) Bourne Again shell (bash)
C shell (包括csh and tcsh) TENEX/TOPS C shell (tcsh) 等等,其中用得最多的该是bash了吧。
什么是shell脚本?shell脚本就是包含一系列命令序列的文本文件,这个就像Windows下的.bat批处理命令文件一样,把你所有的想要系统帮你完成的任务命令都堆在一个小小的文本里,然后简单地点击一下文本就可以啦,是不是很高的效率?是不是也可理解为一个程序?shell脚本就是这么一回事,没什么了不起的,我刚学的时候也被这个名词给忽悠了哈,羞。
好吧,下面以一个简单的实例来看看我们的shell脚本的语法及框架式怎样的:
1.shell脚本的第一行必须是以如下格式出现:#!/bin/sh 其中的#!号(整体来看)用来指定该脚本文件的解析程序。在我们的这个例子中使用/bin/sh来解析脚本,需要注意的一点是当我们写完shell脚本后记得要用chmod命令为其添加权限(执行可读或者可写)
2.#号是用来注释的,注释直到该行结束,当然这里不要把第一行的#!错看成注释咯,整体!!
3.shell中的变量是不需要声明的,直接用即可,使用时需加上一个美元符号$,这里需要提醒一点的是注意变量与字符的混淆,例如我想要输出10nd(num=10 用$numnd会输出空字符,因为系统遇到$符号后会自动搜索其后紧跟着的字符串以确定所引用的变量,在这里系统误认为我们要引用的变量为numnd,而实际上我们并没有给numnd变量赋值,所以最终系统输出空字符。局部变量第一次赋值时需要加上local关键字,这一点跟c,java等编程语言有所不同!还有需要注意的是“=”两边不能留空格!而比较语句“=” 左右两边都应该留有空格,以及“【”“】”等。
其实shell里面是有默认变量的,共五个:1.$#:输入脚本的命令行参数个数 2.$*所有命令行参数值 3.$0:命令本身(shell文件名)4.$1第一个参数类似地$2为第二个参数...