从程序员的角度来看,Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在系统管理等领域,Shell编程起着不可忽视的作用。前期我对shell编程做了一个初步的认识,现总结如下;
知识分为了两部分:
在基本知识中我将其分为了:执行方法、运算式、变量和判断式四部分。1、执行方法就是在Linux中shell文件执行的命令,用的多了自然会没有问题。2、对于运算其中讲解了(()),基本语句为变量=$((运算式)),其中关于得到的结果也常常运用于作为语句的判断依据,它会得到一个返回值,即变量$?它的值为0表示语句的执行成功,非0表示语句的执行失败。Declare 用于声明一个变量,后面可以指明变量类型,例如:-i。同样let也可以给变量赋予相应的值,通过运算式得到。3、对于变量其中返回值$?前边已经提过了,对于默认的变量$#,这些默认变量一般用于每一行中依据某一标准而形成的各个字段的表示。前期博客中在文件排版中曾提到过。4、判断式有test做测试功能,它可以检测系统文件的相关属性,一个很有用处的命令,后面可以接很多的参数,相关的参数要学会利用—help 或man page来查询和学习。还有就是[ ]的相关用法了,对于[ ]用来做一些表达式的判断,对于判断式的结果,它同样会得到一个返回值,所以也会作为语句中的一个判断依据来执行一些相关的操作。
看到这里和前期学习C语言和VB语言有很多的相似之处,但也存在有很多不同之处,下边在总结中来看他们的用法。
if后接一个判断条件,then后接上要执行的语句,同样结构也可拓展为如下:
if 条件then
执行语句
elif条件then
执行语句
else
执行语句
fi
功能类似于C中的switch语句。具体的结构如下:
case$变量名 in
第一个变量名)
执行语句
;;
第二个变量名)
执行语句
;;
*)
其他情况执行语句
;;
esac
函数功能,这和前期学习中的函数功能相同。但结构上是有差别的,如下:
Function函数名(){
函数体
}
其实while dodone语句和until do done语句是相似的都是不定次数的循环,只是给定条件而已,vb中接触过的,结构如下:
while/until [判断式]
do
执行语句
done
不同的是while在判断式不成立时终止循环,而until是在条件成立时终止循环。
这个循环不同与前两个的是循环次数是已知的,结构如下:
For变量 in 内容1 内容2 …
Do
执行语句
Done
在循环的过程中依次将内容n的值赋予变量来执行下边的语句,当然内容的表示也是可以有别的方式的,否则变量多了就难以表示,例如用(seq 1 100)表示1到100。
另一种结构方式如下:
For((初始值;限制值;执行步长))
Do
执行语句
Done
这就和我们在C和VB语句中接触的for循环结构更加相似了。
至此时我对shell script一个初步认识的总结,后期还要继续学习shell的编程,文件的编程,串口编程,进程和线程编程的相关知识和运用,和硬件慢慢结合起来做一些相关处理和操作,后边的路还很长,要学的东西也很多,期待着那一份愿景,能够用自己所学的知识去回报社会,为更多的人服务,走向社会上在有需求的地方能够力所能及的贡献自己的那一份力量是一件幸福的事,我相信未来会有一个属于我的地方来造福于他人!!
原文地址:http://blog.csdn.net/rcj183419/article/details/45370699