SHELL脚本if语句⼀:条件测试
1. 语法:
test 条件表达式或 [ 条件表达式 ]
-n :测试变量是否存在(空为0,)
if [ ! -n "$JAVA_HOME" ]; then
JAVA_HOME=/opt/starview/tools/jdk
shell代码else
JAVA_HOME=$JAVA_HOME
fi
2.⽂件测试:
-d:测试是否为⽬录
-
f:测试是否为⽂件
-e:测试⽬录或⽂件是否存在
-r:测试当前⽤户是否有读取权
-w:测试当前⽤户是否有写⼊权限
-x:测试当前⽤户是否有执⾏权限
例:测试/etc/hosts⽂件是否存在.如图
-eq:相等
-ne:不相同
-le:⼩于等于
-ge:⼤于等于
-gt:⼤于
-
lt:⼩于
例:如图
=:第⼀个字符串和第⼆个字符串相等
!=:第⼀个字符串和第⼆个字符串不相等
-z:检查字符串是否为空
例:如图
&&:逻辑与,表⽰前后2个条件都成⽴时,测试命令返回值为0(结果成⽴)
||:逻辑或的意思,表⽰前后2个条件有其中⼀个满⾜条件时,测试命令返回值为0(结果成⽴) !:逻辑否,当条件不成⽴时,测试命令返回值为0(结果成⽴)
例如图:
1.单分⽀if语句:只在"条件成⽴"才执⾏相应的代码操作,否则不做任何操作.
语法:
if 条件测试操作
then
命令序列
fi
例如:编写个脚本,测试系统中是否有/media/cdrom这个⽬录,如果没有则创建.
脚本如下:
#!/bin/bash
mulu="/media/cdrom"
if [ ! -d $mulu ] ; then
mkdir -p $mulu
fi
2.多分⽀if语句:针对单分⽀条件不成⽴时,执⾏另⼀个操作.
语法
if 条件测试操作
then //条件成⽴执⾏命令序列1
命令序列1
else //条件不成⽴则执⾏命令序列2
命令序列2
fi
例:编写⼀个连通性测试⼩脚本.根据ping结果显⽰不同的提⽰,成功显⽰chenggong 失败显⽰shibai.如下: #!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null //此操作不显⽰在屏幕上
if [ $? -eq 0 ] //上⾯条件成⽴则运⾏下⾯命令
then
echo "chenggong"
else //不成⽴则运⾏下⾯的命令
echo "shibai"
fi
3.多分⽀if语句:对多个互斥的条件执⾏不同的操作.
语法:
if 条件测试操作1
then
命令序列1
elif
then
命令序列2
else
命令序列3
fi
例:编写1个成绩⼩脚本,90-100显⽰优秀,70-80显⽰⼀般,其他不及格.如
#!/bin/bash
read -p "请输⼊你的成绩" chengji
if [ $chengji -ge 90 ] && [ $chengji -le 100 ]
then
echo "你的成绩很优秀"
elif [ $chengji -ge 70 ] && [ $chengji -lt 90 ]
then
echo "你的成绩⼀般"
else
echo"你的成绩不级合格"
fi
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论