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语句结构:
![](http://img1.51cto.com/attachment/201306/145330133.jpg)
2.双分支的if语句
双分支的if语句格式:if 条件测试操作 then命令序列1 else 命令序列2
fi双分支的if结构执行流程:首先判断条件测试的操作结果,如果条件成立,则执行then后面的命令序列1,忽略else及后面的命令序列2,直到遇见fi 结束判断;如果条件不成立,则忽略then后面的命令序列1,直接跳至else及后面的命令序列2执行,直到遇见fi 结束判断。双分支的if语句结构:
![](http://img1.51cto.com/attachment/201306/145537454.jpg)
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语句结构:
![](http://img1.51cto.com/attachment/201306/145644417.jpg)
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
本文出自 “敏而好学” 博客,谢绝转载!
[重点]
Ø整数值比较/逻辑测试Ø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语句结构:
![](http://img1.51cto.com/attachment/201306/145330133.jpg)
2.双分支的if语句
双分支的if语句格式:if 条件测试操作 then命令序列1 else 命令序列2
fi双分支的if结构执行流程:首先判断条件测试的操作结果,如果条件成立,则执行then后面的命令序列1,忽略else及后面的命令序列2,直到遇见fi 结束判断;如果条件不成立,则忽略then后面的命令序列1,直接跳至else及后面的命令序列2执行,直到遇见fi 结束判断。双分支的if语句结构:
![](http://img1.51cto.com/attachment/201306/145537454.jpg)
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语句结构:
![](http://img1.51cto.com/attachment/201306/145644417.jpg)
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
本文出自 “敏而好学” 博客,谢绝转载!
相关文章推荐
- 安装Windows2K3 F6手动加载ServeRAID-MR10i,10il,10is,10k控制器驱动步骤
- DPs_BASE制作自动加载SATA驱动的Windows安装光盘
- Windows驱动_文件系统微小过滤驱动之二驱动的安装和加载
- 服务器用U盘虚拟光驱装系统,有做RAID5,加载RAID驱动成功后,安装到最后会报“windows无法确定此计算机是否包含有效系统卷”错误
- windows系统RNDIS驱动手动安装
- XP系统下手动加载Q77芯片组的AHCI驱动安装教程
- windows下驱动手动安装
- Windows 7驱动自动安装设置及手动更新方法
- THINKPAD T61 windows 7 安装蓝牙驱动的时候,提示没有探测到蓝牙设备
- Windows 2003声卡驱动的安装.
- PHPSTROM 连接 MySQL驱动手动安装
- [转]小问题: windows组件调用失败,无法加载安装安装程序:Wbemupgd.dll
- Windows Serever 2008安装.NET Framework 3.5解决未能加载文件或程序集“System.Web.Extensions, Version=3.5.0.0, Culture
- 加载windows驱动代码
- Windows 7安装ATI驱动
- Windows下安装PHP的MongoDB驱动
- Thinkpad R51 驱动下载及安装方法 for windows XP
- [软件杂谈]Mac OS 系统 安装windows 方法小结(附:VirtualBox VMware Accelerated AMD PCNet Adapter驱动问题)
- windows 7 IBM R52声卡驱动安装问题
- AHCI驱动下载与手动安装图解