武汉大学国际软件学院 2010级国际2班 李三乎
好久没写日志了,今天写一个。
对于一种新的语言的学习,最近感觉书上还是很经典的,虽然从标识符开始讲很让人不爽,但是现在发现要想快速掌握一门语言的话按照书上的结构还是很正确的。当然只是说书上的结构,内容有的还是偏容易。
对于shell编程,先说下变量的声名,跟javascript一样,不用声名,直接使用,赋值就行了。变量的使用有以下几种方式:1.$varname
2.${varname}。第二种主要是为了一种特殊情况,比如想打印2nd这个2是存储在变量two里的,但是和nd连接在一起了,第一种就不能用了,用第二种。
再看shell的数据类型有哪些,只有一种字符串类型。
shell编程每条语句的分割符:换行或是分号,其中大括号可以把几条用分号隔开的语句作为一个整体,即语句块。
shell编程是面向过程的编程,而不是面向对象的,所以要考虑函数的声明和使用。格式
functionname(){# inside the body $1 is the first argument given to the function# $2 the second ...body}使用的时候直接使用functionname就行,不需要括号,如果有参数的话函数声明和使用也都不用括号,直接在语句分割符之前在后面用空格分割每个参数就好。有一点要注意,shell必需是先声明后使用,像C,C++一样,跟java那种面向对象的不一样。
一个程序功能过程中,只有以下几种语句的可能:普通语句,循环语句,条件分支语句。
shell里的普通语句:上边讲的差不多了。
循环语句:
while 表达式 ;do
循环体
done
for 变量名 in 表达式1 表达式2 表达式3 …… ;do
循环体
done
条件分支语句:
我的理解,这个分为条件语句和分支语句,当然,这两个本质上是一个东西。
条件语句:
if ....; then
....
elif ....; then
....
else
....
fi
用老师的话说这个fi是属于恶搞弄的,呵呵 if fi包括下边的case esac程序员的恶搞。
case ... in
...) do something here ;;
esac
这个是分支语句。
对于任何一种过程化的语言,应该可以按照以上的步骤速成,第一步搞明白变量的声明,使用,类型,每种类型的特殊之处,就比如shell中的字符串类型,特殊点有很多,比如用双引号和单引号的不同,有没有转义字符啊,通配符之类的。
第二步,函数的声明及使用方法,这个是过程化语言几乎是最重要的一点了。
第三步,流程控制语句即条件分支语句和循环语句的使用方法,格式。
当然这只是一个框架,每一种的特殊之处要查书,遇到了再查也一样。
也要学会使用别人写好的函数,要能看懂别人写的文档,知道如何输入参数,获得输出,函数是干什么的。