Linux Shell编程与条件语句

目录

Linux Shell编程与条件语句

一、Test

文件测试

整数值比较 

字符串比较 

 逻辑测试

 二、if

单分支结构

双分子结构

 多分支结构

 三、case 


Linux Shell编程与条件语句

一、Test

测试特定的表达式是否成立,当条件成立,测试语句的返回值为0,否则为其他数值 

格式:test  条件表达式  或  [ 条件表达式 ]  (条件表达式的两边都需要空格,且此方法更为常用)

文件测试

常用选项

常见的测试操作符                                    含义
        -d                                   测试是否为目录(directory)
        -e                                   测试目录或文件是否存在(Exist)
        -f                                    测试是否为文件(File)
        -r                                    测试当前用户是否有权限读取(Read)
        -w                                   测试当前用户是否有权限写入(Write)
        -x                                    测试当前用户是否有权限执行(eXcute)
        -L                                    测试是否为软连接文件
        -nt                                   判断文件A是否比文件B新
        -ot                                   判断文件A是否比文件B旧
        -ef                                   判断两个文件是否为同一文件

例1

 例2

例3:可以使用 && 和 echo 一起使用

例4:可以使用 || 和 echo 一起使用

例5:比较两个文件

整数值比较 

格式:[ 整数1  操作符  整数2 ]

常见测试操作符

       操作符                   含义
        -eq                   等于(Equal)
        -ne                   不等于(Not Equal)
        -lt                     小于(Leser Than)
        -gt                    大于(Greater Than)
        -le                    小于或等于(Lesser or Equal)
        -ge                   大于或等于(Greater or Equal)

例1:查询当前目录下的文件数是否大于10,如果大于,则进行提示

例2:查看系统内存是否低于1024M,如果低于则提示

字符串比较 

格式:[ 字符串1 = 字符串2 ]          //判断是否相等

           [ 字符串1 !=  字符串2 ]     //判断是否不等

           [ -z  字符串  ]                      //判断字符串内容是否为空

操作符

     操作符                     含义
        =                    字符串内容相同
        !=                   字符串内容不同,!号表示相反的意思
        -z                    字符串内容为空

 例1:判断当前系统语言环境是否为“us.en”,如果不是则提示

 逻辑测试

格式:[  表达式1  ]  操作符  [  表达式2  ]  

           命令1  操作符  命令2

操作符

-a 或 &&            逻辑与,而且的意思
-o 或 ▕▕            逻辑或,或者的意思
     !                 逻辑否

 二、if

单分支结构

如果只有一个判断式要进行,那么我们可以使用单分支的if语句 ,只有在条件成立时才会执行,否则不执行任何操作

格式:

if  [ 条件判断语句  ] 

then

echo  “当前条件成立时,执行一条或多条命令”

fi

例:使用单分支语句判断 c 文件是否存在

双分子结构

在同一个数据的判断中,如果该数据需要进行两种不同的判断,我们就需要双分支if语句了

格式:

if [  条件判断式  ]

then

echo  “当条件判断成立时,可以执行一条或多条命令”

else

 echo  “当条件判断不成立时,可以执行一条或多条命令”

fi

 例:判断用户输入的是否为yes

 多分支结构

如果数据需要进行多种不同的判断,则可以使用多分支结构 嵌套使用

格式:

if [  条件判断式  ]

then

echo  “当条件判断成立时,可以执行一条或多条命令”

elif  [  条件判断式二  ]  

then

echo  “当条件判断式成立时,可以执行一条或多条命令” 

else

当上面的条件判断都不成立时,可以执行一条或多条命令

fi

 例:多分支判断成绩

 三、case 

格式:

case  变量名称  in

模式1)

命令序列

;;

模式2)

程序段

;;

*)

不包含第一个变量内容与第二个变量内容的其它程序执行段

默认程序段

;;

esac

case行首必须以单词 “in”,每一模式必须以单个右括号")"结束

双分号 ";;" 表示命令序列的结束

模式字符串中,可以用方括号表示一个连续的范围,如 "[0-9]";还可以使用竖杠 | 表示或,比如a|b

最后的 ) 表示默认模式,其中的相当于通配符

例:不管输入大小写字母,都能输出yes或者no

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值