预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

LinuxShell脚本编程基础 本文作者:Leal 授权许可: HYPERLINK"http://creativecommons.org/licenses/by-sa/2.0/"\o"http://creativecommons.org/licenses/by-sa/2.0/"\t"_blank"创作共享协议 HYPERLINK"http://www.gnu.org/copyleft/fdl.html"\o"http://www.gnu.org/copyleft/fdl.html"\t"_blank"GNU自由文档许可证 编辑者:谋万世全局者 我们可以使用任意一种文字编辑器,比如gedit、kedit、emacs、vi等来编写HYPERLINK"http://www.ha97.com/category/shell"\o"shell"shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/sh… 注意:最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tcHYPERLINK"http://www.ha97.com/tag/shell"\o"shell"shell改为tcsh,其他类似。 符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh。编辑结束并保存后,如果要执行该脚本,必须先使其可执行: chmod+xfilename 此后在该脚本所在目录下,输入./filename即可执行该脚本。 目录 1变量赋值和引用 2Shell里的流程控制 2.1if语句 2.2&&和||操作符 2.3case语句 2.4select语句 2.5while/for循环 3Shell里的一些特殊符号 3.1引号 4HereDocument 5Shell里的函数 6Shell脚本示例 6.1二进制到十进制的转换 6.2文件循环拷贝 7脚本调试 变量赋值和引用 Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z) 中间不能有空格,可以使用下划线(_) 不能使用标点符号 不能使用bash里的关键字(可用help命令查看保留关键字) 需要给变量赋值时,可以这么写: 变量名=值 要取用一个变量的值,只需在变量名前面加一个$(注意:给变量赋值的时候,不能在”=”两边留空格) #!/bin/sh#对变量赋值:a=”helloworld”#等号两边均不能有空格存在#打印变量a的值:echo“Ais:”$a 挑个自己喜欢的编辑器,输入上述内容,并保存为文件first,然后执行chmod+xfirst使其可执行,最后输入./first执行该脚本。其输出结果如下: Ais:helloworld 有时候变量名可能会和其它文字混淆,比如: num=2echo“thisisthe$numnd” 上述脚本并不会输出”thisisthe2nd”而是”thisisthe“;这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是num变量: num=2echo“thisisthe${num}nd” 其输出结果为:thisisthe2nd注意花括号的位置: num=2echo“thisisthe{$num}nd” 其输出结果为:thisisthe{2}nd需要注意shell的默认赋值是字符串赋值。比如: var=1var=$var+1echo$var 打印出来的不是2而是1+1。为了达到我们想要的效果有以下几种表达方式: let“var+=1″var=$[$var+1]var=`expr$var+1`#注意加号两边的空格,否则还是按照字符串的方式赋值。 注意:前两种方式在bash下有效,在sh下会出错。 let表示数学运算,expr用于整数值运算,每一项用空格隔开,$[]将中括号内的表达式作为数学运算先计算结果再输出。 Shell脚本中有许多变量是系统自动设定的,我们将在用到这些变量时再作说明。除了只在脚本内有效的普通shell变量外,还有环境变量,即那些由export关键字处理过的变量。本文不讨论环境变量,因为它们一般只在登录脚本中用到。 Shell里的流程控制 if语句 “if”表达式如果条件为真,则执行then后的部分: if….;then….elif….;then….else….fi 大多数情况下,可以使用测试命令来对条件进行测试,比如可以比较字符串、判断文件是否存在及是否可读等等……通常用”[]“来表示条件测试,注意这里的空格很重要,要确保方括号前后的空格。 [-f"somefile"]:判断是否是一个文件 [-x"/bin/ls"]:判断/bin/ls是否存在并有可执行权限 [