linux编程之shell入门基础

上传人:自*** 文档编号:80832028 上传时间:2019-02-20 格式:DOC 页数:9 大小:33.51KB
返回 下载 相关 举报
linux编程之shell入门基础_第1页
第1页 / 共9页
linux编程之shell入门基础_第2页
第2页 / 共9页
linux编程之shell入门基础_第3页
第3页 / 共9页
linux编程之shell入门基础_第4页
第4页 / 共9页
linux编程之shell入门基础_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《linux编程之shell入门基础》由会员分享,可在线阅读,更多相关《linux编程之shell入门基础(9页珍藏版)》请在金锄头文库上搜索。

1、 什么是shell程式呢? 简单的说shell程式就是个包含若干行的shell或linux命令的文件.象编写高级语言的程式相同,编写一个shell程式需要一个文本编辑器.如VI等. 在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整的程式文件.执行shell程式文件有三种方法(1)#chmod +x file(2)#sh file(3)# . file在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程式,如:#! /bin/bash#! /bin/csh,/bin/tcsh#! /bin/pdksh 2.shell中的变量

2、(1)常用系统变量$ # :保存程式命令行参数的数目$ ? :保存前一个命令的返回码$ 0 :保存程式名$ * :以($1 $2.)的形式保存所有输入的命令行参数$ :以($1$2.)的形式保存所有输入的命令行参数(2)定义变量shell语言是非类型的解释型语言,不象用C+/JAVA语言编程时需要事先声明变量.给一个变量赋值,实际上就是定义了变量.在linux支持的所有shell中,都能用赋值符号(=)为变量赋值.如:abc=9 (bash/pdksh不能在等号两侧留下空格 )set abc = 9 (tcsh/csh)由于shell程式的变量是无类型的,所以用户能使用同一个变量时而存放字符时

3、而存放整数. 如:name=abc (bash/pdksh)set name = abc (tcsh)在变量赋值之后,只需在变量前面加一个$去引用. 如:echo $abc(3)位置变量当运行一个支持多个命令行参数的shell程式时,这些变量的值将分别存放在位置变量里. 其中第一个参数存放在位置变量1,第二个参数存放在位置变量2,依次类推.,shell保留 这些变量,不允许用户以令外的方式定义他们.同别的变量,用$符号引用他们.3.shell中引号的使用方法shell使用引号(单引号/双引号)和反斜线()用于向shell解释器屏蔽一些特别字符.反引号()对shell则有特别意义. 如:abc=

4、how are you (bash/pdksh)set abc = how are you (tcsh)这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.abc1=$LOGNAME,how are you! (bash/pdksh)set abc1=$LOGNAME,how are you! (tcsh)abc2=$LOGNAME,how are you! (bash/pdksh)set abc2=$LOGNAME,how are you! (tcsh)LOGNAME变量是保存当前用户名的shell变量,假设他的当前值是:wang.执行完两条命令后, abc1

5、的内容是:$LOGNAME, how are you!.而abc2的内容是;wang, how are you!. 象单引号相同,反斜线也能屏蔽所有特别字符.不过他一次只能屏蔽一个字符.而不能屏蔽一组字符.反引号的功能不同于以上的三种符号.他不具有屏蔽特别字符的功能.不过能通过他将一个命令的运行结果传递给另外一个命令.如:contents=ls (bash/pdksh)set contents = ls (tcsh)4.shell程式中的test命令在bash/pdksh中,命令test用于计算一个条件表达式的值.他们经常在条件语句和循环语句中被用来判断某些条件是否满足.test命令的语法格式

6、:test expression 或 expression在test命令中,能使用非常多shell的内部操作符.这些操作符介绍如下:(1)字符串操作符 用于计算字符串表达式test命令 | 含义-Str1 = str2 | 当str1和str2相同时,返回TrueStr1! = str2| 当str1和str2不同时,返回TrueStr | 当str不是空字符时,返回True-n str | 当str的长度大于0时,返回True-z str | 当str的长度是0时,返回True-(2)整数操作符具有和字符操作符类似的功能.只是他们的操作是针对整数test表达式 | 含义-Int1 -eq i

7、nt2|当int1等于int2时,返回TrueInt1 -ge int2|当int1大于/等于int2时,返回TrueInt1 -le int2|当int1小于/等于int2时,返回TrueInt1 -gt int2|当int1大于int2时,返回TrueInt1 -ne int2|当int1不等于int2时,返回True-(3)用于文件操作的操作符,他们能检查:文件是否存在,文件类型等test表达式 | 含义-d file |当file是个目录时,返回 True-f file |当file是个普通文件时,返回 True-r file |当file是个刻读文件时,返回 True-s file

8、|当file文件长度大于0时,返回 True-w file |当file是个可写文件时,返回 True-x file |当file是个可执行文件时,返回 True-(4)shell的逻辑操作符用于修饰/连接包含整数,字符串,文件操作符的表达式test表达式 | 含义-! expr |当expr的值是False时,返回TrueExpr1 -a expr2|当expr1,expr2值同为True时,返回TrueExpr1 -o expr2|当expr1,expr2的值至少有一个为True时,返回True-注意: tcsh shell 不使用test命令,不过tcsh中的表达式同样能承担相同的功能.

9、tcsh支持的表达式于C中的表达式相同.通常使用在if和while命令中.tcsh表达式 | 含义-Int1 = int2 |当int1大于/等于int2时,返回TrueInt1 int2 |当int1大于int2时,返回TrueStr1 = str2 |当str1和str2相同时,返回TrueStr1 != str2 |当str1和str2不同时,返回True-r file |当file是个可读文件时,返回True-w file |当file是个可写文件时,返回True-x file |当file是个可执行文件时,返回True-e file |当file存在时,返回True-o file |

10、当file文件的所有者是当前用户时,返回True-z file |当file长度为0时,返回True-f file |当file是个普通文件时,返回True-d file |当file是个目录时,返回TrueExp1 | exp2 |当exp1和exp2的值至少一个为True时,返回TrueExp1 & exp2 |当exp1和exp2的值同为True时,返回True! exp |当exp的值为False时,返回True5.条件语句同其他高级语言程式相同,复杂的shell程式中经常使用到分支和循环控制结构, bash,pdksh和tcsh分别都有两种不同形式的条件语句:if语句和case语句.

11、(1)if语句 语法格式:bash/pdksh用法:if expression1thencommands1elif expression2commands2elsecommands3iftcsh用法:if (expression1) thencommands1else if (expression2) thencommands2elsecommands3endif含义:当expression1的条件为True时,shell执行then后面的commands1命令;当expression1的条件为false并且expression2的条件满足为True时,shell执行commands2命令;当

12、expression1和expressin2的条件值同为false时,shell执行commands3命令.if语句以他的反写fi结尾.(2)case语句case语句需求shell将一个字符串S和一组字符串模式P1,P2,.,Pn比较,当S和某个模式Pi想匹配时,就执行相应的那一部分程式/命令.shell的case语句中字符模式里能包含象*这样的通配符. 语法格式:bash/pdksh用法:case string1 instr1)commands1;str2)commands2;commands3;esactcsh用法:switch (string1)case str1:statements1

13、breakswcase str2:statements2breakswdefault:statements3breakswendsw含义:shell将字符串string1分别和字符串模式str1和str2比较.如果string1和str1匹配,则shell执行commands1的命令语句;如果string11和str2匹配,则shell执行commands2的命令语句.否则shell将执行commands3的那段程式命令.其中,每个分支的程式/命令都要以两个分号;结束.6.循环语句当需要重复的某些操作时,就要用到循环语句.(1)for语句大家知道在非常多编程语言中for语句是最常见.在shel

14、l中也不例外.for语句需求shell将包含在这个语句中的一组命令连续执行一定的次数.语法格式:bash/pdksh用法1:for var1 in listdocommandsdone含义:在这个for语句中,对应于list中的每个值,shell将执行一次commands代表的一组命令. 在整个循环的每一次执行中,变量var1将依此取list中的不同的值.用法2:for var1dosetatementsdone含义:在这个for语句中,shell针对变量var1中的每一项分别执行一次statements代表的一组命令.当使用这种形式的语句时,shell认为var1变量中包含了所有的位置变量,而位置变

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号