预览加载中,请您耐心等待几秒...
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
HYPERLINK"http://www.whhpaccp.com"http://www.whhpaccp.comLinux中的shell编程shell变量1:两类变量:临时变量和永久变量临时变量是shell程序内部定义的,适用范围仅限于程序内部,对其他程序不可见。包括:用户自定义变量,位置变量。永久变量是环境变量,其值不随shell脚本的执行结束而消失。2:用户自定义变量要以字母或下划线开头,由字母,数字,下划线组成。在使用变量时,要在变量前面加"$"符号。3:位置变量和特殊变量shell解释执行用户命令时,将执行命令的第一个部分作为命令名,其他部分作为参数。由出现在命令行上的位置确定的参数称为位置参数。例如:ls-lfile1file2file3$0这个程序的文件名ls-l$n这程序的第n个参数值,n=1-94:特殊变量$*这个程序的所有的参数$#这个程序的参数的个数$$这个程序的PID$!执行上一个后台命令的PID$?执行上一个命令的返回值5:shell命令read命令:从键盘读入数据,付给变量。如:readNAMEexpr命令:对整数型变量进行算数运算如:expr3+5之间要有空格否则以字符的形式表示出来expr$var1/$var2同上expr$var1\*10乘法要用到转义字符"\"复杂的运算:expr`expr5+7`+3可以用命令替换符6:变量测试语句:test测试条件1>字符串测试:teststr1=str2测试字符串是否相等teststr1!=str2测试字符串是否不相等teststr1测试字符串str1是否不为空test-nstr1测试字符串是否不为空test-zstr1测试字符串是否为空2>整数测试:testint1-eqint2测试整数是否相等testint1-geint2测试int1是否>=int2testint1-gtint2测试int1是否>int2testint1-leint2测试int1是否<=int2testint1-ltint2测试int1是否<int2testint1-neint2测试int1和int2是否不相等3>文件测试:test-dfile指定的问件是否为目录test-ffile指定的文件是否为常规的文件test-xfile指定的文件是否可执行test-rfile指定的文件是否可读test-wfile指定的文件是否可写test-afile指定的文件是否存在test-sfile指定的文件大小是否非0变量测试语句一般不单独使用,一般作为if语句的测试条件。例如:iftest-d$1thenfi变量测试语句可用[]进行简化,如test-d$1等价于[-d$1](注意括号两边的空格)7:流程控制语句多个条件的联合:-a逻辑与,当且仅当两个条件都成立时,结果为真-o逻辑或,两个条件只要有一个条件成立,结果为真。例如:elif[-c$file_name-o-b$file_name]then(注意测试语句内的空格)一个实际的例子:#/bin/shif[$#-ne2];thenecho"Notenoughparameters"exit0#0表示程序正常的退出fiif[$1-eq$2];thenecho"$1equals$2"#注意双引号和单引号的区别elif[$1-lt$2];thenecho"$1littlerthan$2"elif[$1-gt$2];thenecho"$1greaterthan$2"fifor....done语句例子:(剔除某一个在线的用户)#!/bin/sh#thescripttokilllogineduserusername="$1"/bin/psaux|/bin/grep$username|/bin/awk'{print$2}'>/tmp/tmp.pidkillid=`cat/tmp/tmp.pid`forPIDin$killiddo/bin/kill-9$PID2>/dev/nulldoneselect和case的用法实例:#!/bin/shecho"ais5,bis3.Pleaseselectyourmethod:"a=5b=3selectvarin"a+b""a-b""a*b""a/b"dobreakdonecase$varin"a+b")echo'a+b='`expr$a"+"$b`;;"a-b")echo'a-b='`expr$a"-"$b`;;"a*b")echo'a*b='`expr$a"*"$b`;;"a/b")echo'a/b='`expr$a"\