shell之条件测试和判断语句
来源:互联网 发布:淘宝联盟显示已结算 编辑:程序博客网 时间:2024/05/16 05:59
一 条件测试:
Shell中,用测试语句测试指定的条件表达式的条件的真或假
当指定条件为真时,返回0,反之,返回非0
条件测试的语法:test命令和[命令]
testexpression 或[ epression ]
([ 命令为了增加程序的可读性,追加],同时[ ]与expression之间有空格,因为[ 为shell命令)
1.1 字符串测试
string1=string2 判断两个字符串是否相等
string1!=string2 判断两个字符串是否不相等
-n string 判断string是是否非空字符串
-z string 判断string是否是空串
例子:
a=“hello”
b=“world”
[ “$a” = “$b”] //必须有空格
Echo $? //结果为1,不相等
Test “$a” !=”$b”
Echo $? //结果为0
注意:shell中,空格也是字符串的一部分
$?是一个系统变量,用了获取shell命令的执行状态。执行成功,返回0,否则返回1
1.2 整数测试:
number –eqnumber2 比较number1与number2是否相等,如果相等,测试结果为0
number –nenumber2 比较number1与number2是否不相等,如果不相等,测试结果为0
number –gtnumber2 比较number1是否大于 number2,如果大于,测试结果为0
number –ltnumber2 比较number1是否小于 number2,如果小于,测试结果为0
number –genumber2 比较number1是否大于等于 number2,如果大于等于,测试结果为0
number –lenumber2 比较number1是否小于等于 number2,如果小于等于,测试结果为0
注意:不支持浮点数
1.3文件测试
对文件状态进行测试,判断文件是否存在,是否可读。
test op file 或者[ op file ],op代表操作符
-a file 文件是否存在,存在为0
-b file 文件是否存在,且为块文件,已存在,为0
-c file 文件是否存在,且为字符文件,存在,为0
-d file 文件是否存在,且为目录,存在,为0
-e file 同-a
-s file 文件的长度是否大于0或文件非空,如果非空,为0
-f file 文件存在,且为常规文件,结果为0
-w file 文件是否存在且可写
-L file 文件是否存在,且为符号链接
-u file 文件是否设置suid位
-r file 文件是否存在,且可读
-x file 文件是否存在,且可执行
-nt file 某个指定的文件修改时间是否比另一个晚
-ot file某个指定的文件修改时间是否比另一个早
1.4 逻辑操作符:
!expression逻辑非
expression1 –aexpression2 逻辑与,都为真,才真
expression1 –oexpression2 逻辑或,有一个真,就真
二 条件判断语句
2.1 if语句
if expression
then
statement1
stetement2
fi
或
if exrexxion;then
statement1
statement2
fi
(表达式为真,执行then,分号表示if语句结束,要想将多条语句放在一行中,可用分号隔开。fi表示if结构的结束。)
#使用条件测试判断/bin/bash是否是一个常规文件
if [ -f /bin/bash]
then echo "/bin/bash is a file"
fi
另外:
if :; then echo"always true"; fi
:表示空命令,退出状态永远是0,即总为真,结果永远是alwaystrue
2.2 if else语句
if expression
then
statement1
stetement2
else
statement3
fi
(表达式为真,执行then,为假执行else)
例子:
/bin/sh
#输出提示信息
echo "Pleaseenter a number:"
#从键盘读取用户输入的数字
read num
#如果用户输入的数字大于10
if ["$num" -gt 10 ]; then
#输出大于10的提示信息
echo"The number is greater than 10."
#否则
else
#输出小于或者等于10的提示信息
echo "The number is equal toor less than 10."
fi
if elif语句
if expression1
then
statement1
stetement2
elif expression2
then
statement3
elif expression3
then
statement4
else
statement5
fi
(表达式1为真,执行then,为假再判断expression2,都为假,则执行else)
2.3 exit语句:
exit语句基本作用是终止shell程序的执行,可带一个可选的参数,指定程序退出时的状态码,存储在$?系统变量中。
退出状态0意味脚本成功运行完毕,非0意味程序执行过程中出现某些错误,具体的错误可以根据具体的状态码判断。
使用if和exit语句,使程序在适当时候退出
例子:
04 #如果文件已经存在,则直接退出
05 if [ -e "$1" ]
06 then
07 echo "file $1 exists."
08 exit 1
09 #如果文件不存在,则创建文件
10 else
11 touch "$1"
12 echo "file $1 has been created."
13 exit 0
14 fi
2.4 多条件判断语句case
case variable in
value1)
statement1
value2)
satement2
*)
statement3;;
esac
(case语句将variable变量值与value1与value2匹配,相等就执行对于后面的语句,都不相等,执行*后面的语句。遇到;;跳出case语句,执行esac后面的语句)
注意:variable可使用双引号,也可不用
测试部分以)结束
可以用case语句处理用户不同的输入,执行不同代码
例如:
#! /bin/sh
#输出提示信息
echo "Hit a key,then hit return."
#读取用户按下的键
read keypress
#case语句开始
case "$keypress" in
#小写字母
[[:lower:]])
echo"Lowercase letter.";;
#大写字母
[[:upper:]])
echo"Uppercase letter.";;
#单个数字
[0-9])
echo"Digit.";;
#其他字符
*)
echo"other letter.";;
esac
- shell之条件测试和判断语句
- 04 shell条件测试和判断语句
- 条件测试和判断语句
- shell脚本之条件测试与判断
- Shell条件测试语句
- shell--条件测试语句和流程控制语句的使用
- linux shell条件判断语句
- linux shell条件判断语句
- linux shell条件判断语句
- shell条件判断式语句
- shell 条件判断式语句
- Shell条件判断语句上
- shell之条件判断
- Shell编程之流程控制语句(条件判断)
- Shell中的条件测试语句
- shell--条件判断与测试
- shell之条件测试
- Shell编程之判断条件
- 图像识别(4)——《OpenCV3编程入门-毛星云》第二部分 初探core组件
- 查看Linux系统是多少位
- Android重难点解析——面试中可能被问到的那些问题
- php中urldecode和urlencode的具体使用
- 1613-3-傅溥衍 总结《2016年11月1日》【连续三十二天总结】
- shell之条件测试和判断语句
- Mac OSX搭建Hadoop
- 设置ActiveMQ的访问密码
- 数据挖掘竞赛,算法刷题网址汇总
- html学习笔记
- double保留几位小数 不足补0
- SparkSql本地将json转成表
- excl 导出示例代码 前后台
- docker container 实例退出后继续运行