Shell中的条件语句

条件判断是程序中不可或缺的组成部分,程序中往往需要先对某些条件进行判断,再根据判断的结果采取不同的方案。Shell中也有 条件语句,常用的条件语句为: if语句、select语句和case语句 ,着重讲解Shell中条件语句的使用方法。

条件判断

条件判断是条件语句的核心, Shell中通常使用 test 命令或 [命令对条件进行判断,其判断的条件可以是命令或脚本。

test命令的语法格式如下:

若要检测某个文件是否存在,可使用如下语句进行判断:

if test -f file
then 
......

判断种类(三类):字符串比较、算术比较、和针对文件的条件测试。

字符串比较
条件说明
str1=str2若字符串str1等于str2,则结果为真
str1!=str2若字符串str1不等于str2,则结果为真
-n str若字符串str不为空,则结果为真
-z str若字符串str为空,则结果为真

 

 

算术比较
 条件说明
=expr1 -eq expr2若表达式expr1与expr2返回值相同,则结果为真
expr1 -ne expr2若表达式expr1与expr2返回值不同,则结果为真
>expr1 -gt expr2若表达式expr1返回值大于expr2返回值,则结果为真
>=expr1 -ge expr2若表达式expr1返回值大于等于expr2返回值,则结果为真
<expr1 -lt expr2若表达式expr1返回值小于expr2返回值,则结果为真
<=expr1 -le expr2若表达式expr1返回值小于等于expr2返回值,则结果为真
!!expr表达式结果为假,则结果为

 

 

 

 

 

 

 

 

文件测试
条件说明
-d file若文件file是目录,则结果为真
-f file若文件file是普通文件,则结果为真
-r file若文件file可读,则结果为真

-w file

若文件file可写,则结果为真
-x file若文件file可执行,则结果为真
-s file若文件file大小不为0,则结果为真
-a file若文件file存在,则结果为真

 

 

 

 

w e

w

if 条件语法

Shell 中的 if 条件语句分为: 单分支 if 语句、双分支 if 语句和多分支 if 语句,其结构大体与其它程序设计语言的条件语句相同。

if条件语句
单分支的 if 语句双分支的 if 语句多分支的 if 语句

 

if [条件语句]; then
    ...
fi

if [条件语句]; then
    ...

else

    ...
fi

if [条件语句]; then
    ...

elif [条件语句]; then

  ...

...

else

    ...
fi


 

 

 

注意空格 ,如下。

if [ 条件 ]; then         if [ 条件 ]
    ...                    then ....
fi                        fi


if test 条件 ;then
    ...
fi

 单分支 if 语句

#!/bin/sh
#单分支if语句
echo "请输入文件或文件夹的名称"
read filename
if [ -d $filename ];then
    echo $filename" is a directory"
fi
exit 0

 运行结果

 多分支 if 语句

#!/bin/sh
#单分支if语句
echo "请输入文件或文件夹的名称"
read filename
if [ -d $filename ];then
       	echo $filename "是一个文件夹"
else
	echo $filename "不是一个文件夹"
fi
exit 0

运行结果 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值