您的位置:首页 > 运维架构 > Shell

Shell 编程之if常见语法

2016-07-04 23:12 543 查看
if语句基本语法

if condition
then
staements
elif condition
then
statements
else
statements
fi


常见条件表达式

文件表达式

if [ -f  file ]    如果文件存在
if [ -d ...   ]    如果目录存在
if [ -s file  ]    如果文件存在且非空
if [ -r file  ]    如果文件存在且可读
if [ -w file  ]    如果文件存在且可写
if [ -x file  ]    如果文件存在且可执行


整数变量表达式

shell中逻辑关系判断条件(用于数值判断)
-------------------------------------------
| 逻辑关系   |          shell语句           |
|   >       |       -gt (greater than)    |
|   <       |       -lt (less than)       |
|   ==      |       -eq (equal)           |
|   >=      |       -ge (greater equal)   |
|   <=      |       -le (less equal)      |
|   !=      |       -ne (no equal)        |
-------------------------------------------


字符串变量表达式

If  [ $a = $b ]               #  如果string1等于string2
#  字符串允许使用赋值号做等号
if  [ $sting1  !=  $string2 ] #  如果string1不等于string2
if  [ -n $string  ]           #  如果string 非空(非0),返回0(true)
if  [ -z $string  ]           #  如果string 为空
if  [ $sting ]                # 如果string 非空,返回0 (和-n类似)


= 作为等于时,其两边都必须加空格,否则失效

总结:if逻辑判断语句也可写在同一行,用";"分隔。
#! /bin/bash
## if 语句
## Written by coohx
a=5
if [ $a -gt 10 ];then echo "a>10";else echo "a<=10";fi


常用语法总结:

#! /bin/bash
## if 语句
## Written by COOHX
##############整数变量表达式##################
a=5
if [ $a -gt 10 ];then echo "a>10";else echo "a<=10";fi

##############文件表达式######################
# -s 文件存在且非空
if [ -s 1.txt  ];then
echo "OK!"
else
echo "false!"
fi

#############字符串变量表达式#################
var1=huangxin
var2=coohx
#字符串变量判断相等时,等号与左右两边的变量有空格,否则条件表达式‘$var="string"’会被识别为一个变量,即变量 $var="string"
#if  [ $var2 = "huangxin" ];then
#if [ -z $1 -a  $var2 = "huangxin" ];then
if [ -z $1 ] && [ $var2 != "huangsdfxin" ];then
echo "OK!"
else
echo "false!"
fi

##############字符串变量表达式##############
string=notnull
# $string 等价于 -n $string,即 不为空时返回0,为真!
if [ $string ];then
echo "not null!"
else
echo "null!"
fi
#echo $string

##############if 简化语句 ############
# [ conditions ] 若成立,就执行&&后面的命令
[ -f 1.txt ] && rm 1.txt
# [ conditions ] ||  若不成立,就执行||后面的命令
[ -f 1.txt ] || touch 1.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 编程