shell编程之判断
Posted 永远不要矫情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程之判断相关的知识,希望对你有一定的参考价值。
1.if判断结构
if是最简单的判断语句,可以针对测试结果做相应处理。格式如下:
if expression ; then
command
fi
如果expression测试返回为真,则执行command。如果执行的命令不止一条,则不同命令间用换行符隔开,如下所示:
if expression ; then
command1
command2
fi
例如:判断成绩
[root@node1 ~]# cat score.sh
#!/bin/bash
echo -n "please input a score:"
read SCORE
if [ "$SCORE" -lt 60 ]; then
echo "C"
fi
if [ "$SCORE" -lt 80 -a "$SCORE" -ge 60 ]; then
echo "B"
fi
if [ "$SCORE" -ge 80 ]; then
echo "A"
fi
[root@node1 ~]# sh score.sh
please input a score:85
A
2.if/else判断结构
if/else语句可以完成两个分支的选择,如果if后的判断成立,则执行then之后的内容;否则执行else后的内容。
if expression ; then
command
else
command
fi
例如:
[root@node1 ~]# cat check_file.sh
#!/bin/bash
FILE=/var/log/messages
#FILE=/var/log/message1
if [ -e $FILE ]; then
echo "$FILE exists"
else
echo "$FILE not exists"
fi
[root@node1 ~]# sh check_file.sh
/var/log/messages exists
[root@node1 ~]# vi check_file.sh
[root@node1 ~]# cat check_file.sh
#!/bin/bash
#FILE=/var/log/messages
FILE=/var/log/message1
if [ -e $FILE ]; then
echo "$FILE exists"
else
echo "$FILE not exists"
fi
[root@node1 ~]# sh check_file.sh
/var/log/message1 not exists
3.if/elif/else判断结构
if语法的多层嵌套:
if expression1 ; then
command1
else
if expression2; then
command2
else
command3
fi
fi
例如:
[root@node1 ~]# cat score.sh
#!/bin/bash
echo -n "please input a score:"
read SCORE
if [ "$SCORE" -lt 60 ]; then
echo "C"
else
if [ "$SCORE" -lt 80 -a "$SCORE" -ge 60 ]; then
echo "B"
else
if [ "$SCORE" -ge 80 ]; then
echo "A"
fi
fi
fi
[root@node1 ~]# sh score.sh
please input a score:78
B
4.case判断结构
case判断结构也可以用于多种可能情况下的分支选择。语法结构如下:
case VAR in
var1) command1 ;;
var2) command2 ;;
var3) command3 ;;
....
*) command ;;
esac
例如:
[root@node1 ~]# cat os_type.sh
#!/bin/bash
OS='uname -s'
case "$OS" in
FreeBSD) echo "this is FreeBSD" ;;
Linux ) echo "this is LINUX" ;;
*) echo "Failed to identify this OS" ;;
esac
[root@node1 ~]# sh os_type.sh
Failed to identify this OS
以上是关于shell编程之判断的主要内容,如果未能解决你的问题,请参考以下文章