您的位置:首页 > 其它

x3850M2安装Windows时手动加载驱动

2011-02-25 21:33 363 查看
Shell脚本应用(二)
[重点]
Ø整数值比较/逻辑测试ØIf语句的结构及应用2.1条件测试操作
Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功。当返回值为0时表示成功,否则(非0值)表示失败或异常
使用专门的测试工具---test命令,可对特定条件进行测试,并根据返回值来判断条件(返回值0表示条件成立)
使用test测试包括两种形式:
Test 条件表达式或者 [ 条件表达式 ]
这两种方式作用完全相同,但通常后一种形式更为常用。
注意:方括号[ ]与条件表达式之间需要至少一个空格进行分隔
比较常用的条件操作:
文件测试、整数值比较、字符窜比较、以及针对抖个条件的逻辑测试。
1.文件测试:根据给定的路径名称,判断对应的是文件还是目录,或者判断文件上是否可读、可写、可执行等。常见的操作选项如下:使用时将测试对象放在操作选项之后即可l-d:测试是否为目录(directory)l-e:测试目录或文件是否存在(exsit)l-f:测试文件或目录是否存在(file)l-r:测试当前用户是否有权限读取(read)l-w:测试当前用户是否有权限写入(write)l-x:测试是否设置有可执行(excute)权限列:[ -d /media/cdrom/ ]
Echo $?
Ls -ld /media/cdrom/
为了更直观的查看测试结果,可以结合命令分隔符“&&”和echo命令一起使用,当条件成立时直接输出“yes”。其中“&&”符号表示“而且”的关系,只有当前前边的命令执行成功后才会执行后边的命令,否则后边的命令将会被忽略。
列:[ -d /media/cdrom/Server/ ] && echo “YES”
2.整数值比较:根据给定的两个整数值,判断第1个数是否大于、等于、小于….第2个数整数值比较的常用操作选项如下:(使用时将操作选项放在要比较的两个整数之间)l-eq:第1个数等于(equal)第2个数l-ne:第1个数不等于(not equal)第2个数l-gt:第1个数大于(greater than)第2个数l-lt:第1个数小于(lesser than)第2个数l-le:第1个数小于等于(lesser or equal)第2个数l-ge:第1个数大于等于(greater or equal)第2个数列:who |wc -l
[ $Unum -gt 5 ] && echo “Too many”Free –m: 表示已MB为单位输出内存信息
列:freeCC=$(free -m | grep “cache:”| awk ‘{print $4}’)
[ $freeCC -lt 1024 ] && echo ${freeCC}MB3.字符串比较:通常用来检查用户输入/系统环境是否满足条件在提供交互式操作的shell脚本中,也可用于判断用户输入参数是否符合要求字符串常用操作选项:l=:第1个字符串与第2个字符串相同l!=:第1个字符串与第2个字符串不相同,其中!取反的意思l-z:检查字符是否为空(zero),对于未定义或赋予空值的变量视为空串列:echo $LANG //查看当前语言环境 [ $LANG != “en.US” ] && echo “Not en.US” //字符串测试结果在shell脚本应用中,经常需要用户输入yes或no来确认某个任务列: read -p “是否覆盖现有文件(yes/no)?” ACK [ $ACK =“yes” ] && echo “覆盖”4.逻辑测试:判断两个或多个条件之间的依赖关系常用逻辑测试的操作选项:
l&&:逻辑与,表示“而且”的意思,只有当前后两个条件都成立时,整个测试名令的返回值才为0(结果成立)。使用test名令时,“||”可改为“-a”l||:逻辑或,表示“或者”的意思,只要前后两个条件中有一个成立时,整个测试名令的返回值才为0(结果成立)。使用test名令时,“||”可改为“-o”l! :逻辑否,表示“不”的意思,只有当条件不成立时,整个测试名令的返回值才为0(结果成立)。注: “&&” 和“||”通常也用于间隔不同名令操作如:make && make install 列:判断当前linux系统内核版本是否大于2.4
Uname -r
Mnum= $(uname –r | awk -F. ‘{print $1}’)
Snum=$(uname -r | awk -F. ‘{print $2}’)
[ $Mnum -eq 2 ] && [ $Snum -gt 4 ] && echo “符合要求”
2.2使用if语句
使用专用的if语句,可以更好的整理脚本结构,使得层次分明,清晰易懂2.2.1 If语句结构
在shell脚本应用中,if语句是最常用的一种流程控制方式。If选择结构可以分为三种不同的基本类型:适用于不同的应用场合。1.单分支结构If语句的“分支”指的的是不同测试结果对应的执行语句(一条或多条)。对于单分支语句,只有在“条件成立”时才会执行相应的代码,否则不作任何操作。单分支If语句语法格式:if 条件测试 then 命令序列 fi
单分支If结构的执行流程:首次判断条件测试的操作结果,如果返回值为0 表示条件成立,则执行then后面的名令序列,一直到遇见fi为止表示结束,继续执行其他脚本代码;如果返回值不为0,则忽略then后面的命令序列,直接跳至fi 行以后执行其他脚本代码。单分支If语句结构:


2.双分支的if语句
双分支的if语句格式:if 条件测试操作 then命令序列1 else 命令序列2
fi双分支的if结构执行流程:首先判断条件测试的操作结果,如果条件成立,则执行then后面的命令序列1,忽略else及后面的命令序列2,直到遇见fi 结束判断;如果条件不成立,则忽略then后面的命令序列1,直接跳至else及后面的命令序列2执行,直到遇见fi 结束判断。双分支的if语句结构:


3.多分支的if语句
多分支的if语句的语法格式:if 条件测试操作1 then 命令序列1 elif 条件测试操作2
Then
命令序列2
else
命令序列2
fi
多分支的if结构的执行流程:首先判断条件测试的操作1的结果,如果条件1成立,则执行命令序列1,然后跳至fi 结束判断;如果条件1不成立,则继续判断条件测试操作2的结果,如果条件2成立,则执行命令序列2,然后跳至fi 结束判断;……如果所有的条件多不满足,则执行else后面的命令序列n,然后遇见fi 结束判断。多分支的if语句结构:


2.2.2 if语句应用
单分支语句应用:
列:vi /opt/chkifroot.sh#!/bin/bash If [ “$USER” !=”root” ]then echo “错误:非root用户,权限不足” exit 1 //非正常退出fi#chmod +x chkifroot.Sh#/opt/chkfiroot.sh列:双分支 if语句应用:编写连通性测试脚本pinghost.sh列:vi pinghost.sh #!/bin/bash Ping -c 3 -I 0.2 –w 3 $1 &> /dev/null If [ $? –eq 0 ] thenEcho “host $1 is up” else
Echo “host $1 is down ”
fi
#chmod +x pinghost.sh#./pinghost.sh 192.168.4.1多分枝语句因应用:根据多个互斥的条件执行不同的操作,实际等同于嵌套使用的if语句。编写一个成绩分档的脚本列: vi gradediv.sh#!/bin/bashRead –p “请输入您的分数(0-100)” GRADEIf [ $GRADE –ge $5 ] && [ $GRADE -le 100 ] Then Echo “ $GRADE 分,优秀”elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]then echo “$GRADE 分,合格”else echo “$GRADE 分,不合格”f#chmod +x gradeediv.sh#./ gradeediv.sh

本文出自 “敏而好学” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: