美文网首页shell
Linux Shell脚本if-else语句及test命令

Linux Shell脚本if-else语句及test命令

作者: 泽洛灬 | 来源:发表于2018-07-30 17:56 被阅读0次

Linux中的if语句根据其后紧跟的command语句的退出码是否非零进行逻辑判断,这是不同于其他编程语言的一个特性。

状态退出码的介绍可以参考:https://www.jianshu.com/p/ba478a2dbcbc

if-then语句的基本格式

if command

then

    commands

fi

抑或是:

if command; then

commands

fi

请注意后者在待求值的命令尾部增加了分号

if-then-else语句的基本格式

if command

then 

    commands

else

    commands

fi

需要多个if判断逻辑时使用如下命令

if command1

then

    commands set 1

elif command2

then

    commands set 2

else 

    commands set 3

fi

test命令

在if-then语句中需要以命令是否成立作为判断条件时用test命令来辅助。

语法:

1.test condition

test命令中的条件成立,test命令将退出并返回状态码0,反之,退出返回非零状态码。

当test命令中的语句为空时,会判定为语句不成立,退出并返回非零状态码。

2.[ condition ]

bash shell 提供了另一种测试方法,也就是test命令的另一种语法。

在if-then语句中将是这样的形态:

if [ condition ]

then 

    commands

fi

test命令可以判断的三类条件

□数值比较

□字符串比较

□文件比较

数值比较

    符 号                描述

  n1 -eq n2        n1与n2是否相等

  n1 -ge n2        n1是否大于或等于n2

  n1 -gt n2         n1是否大于n2

  n1 -le n2         n1是否小于或等于n2

  n1 -lt n2          n1是否小于n2

  n1 -ne n2        n1是否不等于n2

这里能处理的是整数和变量:

#!/bin/bash

value1=10

if [ $value1 -gt 5 ]

then

   echo "The test value $value1 is greater than 5"

else

   echo "The test value $value1 is smaller than 5"

不能处理浮点数。

字符串比较

    符 号                描述

  str1 = str2        str1是否与str2相同

  str1 != str2        str1是否与str2不同

  str1 < str2         str1是否比str2小

  str1 > str2         str1是否比str2大

    -n str1             str1长度是否非零

    -z str1             str1长度是否为0


文件比较

符号 描述

-d file      file是否为一个目录

-e file      file是否存在

-f file      file是否存在并是一个文件

-r file      file是否存在并可读

-s file      file是否存在并非空

-w file      file是否存在并可写

-x file      file是否存在并可执行

-O file      file是否存在并属当前用户所有

-G file      file是否存在并且默认组与当前用户相同

file1 -nt file1  file1是否比file2新

file1 -ot file1  file1是否比file2旧    #这里的新旧依据是文件的创建时间

欢迎指正和补充。

相关文章

  • Linux Shell脚本if-else语句及test命令

    Linux中的if语句根据其后紧跟的command语句的退出码是否非零进行逻辑判断,这是不同于其他编程语言的一个特...

  • linux学习笔记-09shell脚本

    shell脚本 Shell脚本是将各种命令通过逻辑语句组合而成的程序 脚本每行写一条Linux命令。并且一个完整的...

  • Shell 脚本的组成部分

    本文参考自 《Linux Shell命令行及脚本编程实例详解 》 Shell 脚本的组成部分:1.Shell 关键...

  • Linux下的shell

    Shell 和 Linux shell程序是包含若干行shell或linux命令的文件。linux命令语句只能一行...

  • shell脚本基础

    shell介绍 shell命令: 在linux终端能被解析的命令,就是shell命令。 shell脚本: 多个sh...

  • 测试开发笔记二(Linux与Shell脚本)

    01 | Linux系统和Shell环境准备 运行shell test.sh 运行脚本 02 | Linux常用命...

  • 17. Interview-Linux

    1 用过哪些Linux命令? 2 写过shell脚本吗?shell脚本基本格式? 3 Linux I/O读写方式 ...

  • [Linux]Shell

    shell:命令解释器,驱动linux内核;应用程序调用shell命令 1.Shell脚本的执行方式 脚本格式要求...

  • 自动化脚本实践(Shell + Expect)

    Linux Shell脚本入门: Linux awk 命令 | 菜鸟教程 Shell 教程 | 菜鸟教程 lin...

  • Fabric01-1

    一:shell脚本基础 1.shell命令 : 在linux终端能够被解析出来的命令2.shell脚本 : 多个s...

网友评论

    本文标题:Linux Shell脚本if-else语句及test命令

    本文链接:https://www.haomeiwen.com/subject/pboxvftx.html