Linux脚本编程之if判断语句
来源:互联网 发布:李小璐淘宝店网址 编辑:程序博客网 时间:2024/06/12 01:48
Linux脚本编程中最基本的结构化语句为 if-then语句,if-then语句的格式如下:
if commandthen commandsfi
执行过程为:首先运行在if行定义的命令,如果命令的退出码是0(成功执行命令)
,则将执行 then后面的命令,如果退出码不为0,then后的命令将不会执行,
例如:
$ cat test01 #!/bin/bash#测试一个正常的命令if datethen echo "date worked"fi$ ./test012017年 01月 03日 星期二 08:31:30 CSTdate worked下面是一个反面例子:
$ cat test02#!/bin/bash#测试一个不存在的命令if asasaasthen echo "the command doesn't work "fiecho "this is outside if statement"$ ./test02./test.sh:行3: asasaas: 未找到命令this is outside if statement注意:命令出错时的错误信息也会显示在屏幕上,可以使用重定向将其定位到其它地方。
用惯其它编程语言的同学会觉得 shell编程的if语句有点别扭,可以使用下面这种写法来治疗一下强迫症:
if command;then commandsfi分支判断语句还有下面两种形式:
if commandthen commandselse commands1fi===================此为分隔线===========================if command1then commands1elif command2then commands2elif command3then commands3else commands4fi
上面介绍的if语句判断的都是shell命令的退出码,很多时候我们需要判断其它
条件,如数字比较,字符串比较等,在bash shell中可以使用test命令判断其它条件。
test 命令有两种写法:
1.第一种写法if test conditionthen commandsfi===============此为分隔线================================2.第二种写法if [ condition ]then commandsfi使用第二种写法时一定要注意:前半个括号后面和后半个括号前面必须加个空格,否则会报错。
test命令可以判断以下3种条件:
a.数值比较
n1 -eq n2 检查n1是否相等n2 n1 -le n2 检查n1是否小于或相等n2
n1 -ge n2 检查n1是否大于或等于n2 n1 -lt n2 检查n1是否小于n2
n1 -gt n2 检查n1是否大于n2 n1 -ne n2 检查n1是否不相等n2
b.字符串比较
str1 = str2 检查str1与str2是否相同 str1 > str2 检查str1是否大于str2
str1! = str2 检查str1与str2是否不同 -n str1 检查str1长度是否大于0
str1 < str2 检查str1是否小于str2 -z str1 检查str1长度是否为0
需要注意的一点是:这里的 '>'和'<'需要转义 前面加个'\',例如
$ cat test03#!/bin/bashval1=helloval2=hiif [ $val1 \> $val2 ]then echo "$val1 > $val2"else echo "$val1 < $val2"fi$ ./test04hello < hic.文件比较
-d file 检查file是否存在并且是一个目录
-e file 检查是否存在
-f file 检查file是否存在并且是一个文件
-r file 检查file是否存在并且可读
-s file 检查file是否存在并且不为空
-w file 检查file是否存在并且可写
-x file 检查file是否存在并且可执行
-O file 检查file是否存在并且被当前用户拥有
-G file 检查file是否存在并且默认组是否为当前用户组
file1 -nt file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧
0 0
- Linux脚本编程之if判断语句
- Linux shell脚本编程if语句的使用方法(条件判断)
- linux shell脚本编程if语句内判断参数详解
- linux之基础shell脚本编程2 if语句循环判断
- linux shell脚本之if判断
- Linux shell脚本之 if条件判断
- [Linux] shell脚本之if判断
- shell脚本编程之for语句、if语句使用介绍
- linux脚本编程---循环体while和条件语句if then
- Linux脚本(shell)编程(五) if 条件判断
- linux shell编程if语句内判断参数
- linux shell编程if语句内判断参数详解
- linux shell编程if语句内判断参数详解
- linux shell编程if语句内判断参数详解
- 转 linux shell编程if语句内判断参数
- linux shell编程if语句内判断参数
- Linux 脚本 的 if 判断
- shell脚本之if语句
- 6、单向链表
- Lua学习笔记(基础二)
- 三角形概率分布
- Codeforces Round #301 (Div. 2)-D. Bad Luck Island(概率dp)
- 数据库查询
- Linux脚本编程之if判断语句
- WM6不支持SendRequestEx,怎么上传HTTP表单?
- 大侠们用eclipse写代码建立项目时用符合j2me wireless toolkit 的目录要求吗?
- ZCMU—1403
- SurvivalShooter学习笔记(一.相机跟随)
- Pocket PC 2003 html 的问题
- 我的2016都在升值地卖命和卖命地升值
- j2me 音乐播放器,音频文件大于剩余内存时,出现了问题。
- j2me编译 CLR模式