shell if语句和test命令

shell if语句和test命令在shell中if条件判断语句和我们的C、C++、Java等语言是不同的,shell的if语句条件必须用[]括起来,另外[]里外都需要用空格与周围隔开(例如[a==b]),否则报错;另外与if配对的有elseif和else,如果我们要写这两个必须后面跟有东西,否则也会报错,在编程中不跟是可以的:if(a==b)printf("a=b");else{//什么都没有}但是s…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在shell中if条件判断语句和我们的C、C++、Java等语言是不同的,shell的if语句条件必须用[ ]括起来,另外[ ]里外都需要用空格与周围隔开(例如[ a==b ]),否则报错;另外与if配对的有else if和else,如果我们要写这两个必须后面跟有东西,否则也会报错,在编程中不跟是可以的:

if(a==b)
printf("a=b");
else
{
//什么都没有
}

但是shell中是不可以的,简单的看一下shell里的if、else if和else的简单使用:

#!/bin/bash
a=10
b=20
if [ $a == $b ]#注意[]里外的空格
then #if条件成立后引出后续
echo 'a=b'
elif [ $a -gt $b] #如果使用else if 必须在最后多加一
fi #结束
then echo "a > b" #所有包含if的判断,都需要then引出后续
else#必须有操作,否则只写else报错
echo 'a<b' 
fi #if结束标志,必须有

以上就是简单的条件判断语句举例说明,下面我们来看看shell的test命令说明:Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。下面我们接着对这个三个方面进行举例说明:
1、数字:
这里写图片描述
这里的数值的比较条件分别为:

    -eq  是否相等
    -ne  是否不等
    -gt  是否大于
    -ge  是否大于等于
    -lt  是否小于
    -le  是否小于等于

如果变量名过长取值比较需要加[],如比较val和val1:$[val] -eq $[val1]
2、字符串比较:
这里写图片描述
字符串的比较:

    =  两个字符串是否相等
    != 两个字符转是否不等
    -n  字符串是否为空
    -z  字符串是否不空

字符串变量取值规则和数字一样,变量长的话加[]。
3、文件测试:
这里写图片描述
文件是针对单个文件的:

-e 文件名  如果文件存在则为真
-r 文件名  如果文件存在且可读则为真
-w 文件名  如果文件存在且可写则为真
-x 文件名  如果文件存在且可执行则为真
-s 文件名  如果文件存在且至少有一个字符则为真
-d 文件名  如果文件存在且为目录则为真
-f 文件名  如果文件存在且为普通文件则为真
-c 文件名  如果文件存在且为字符型特殊文件则为真
-b 文件名  如果文件存在且为块特殊文件则为真

具体展示就不在这里展示了,最后我们来看看执行结果:
这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157489.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • arouter实现activity跳转原理

    arouter实现activity跳转原理一、思路分析arouter让我们可以非常简单地实现组件间页面跳转,实现的基本思路是1.在对应的activity上加上注解,通过apt技术来自动生成代码,代码能将activity对应路径和class添加到路由表中;2.通过扫描获取所有类,遍历自动执行步骤1中所生成地代码,从而路由表中有了对应地数据,路由表的数据结构为Map<String,Class<?e…

  • C/C++:long int与long long的区别

    C/C++:long int与long long的区别longint  longint即long,给人的感觉好像是长整型,但实际上,它和int一样,只有32位。cppreference给出的定义是——int-basicintegertype.Thekeywordintmaybeomittedifanyofthemodifierslistedbelowareused.Ifnolengthmodif…

  • PYQT5 pycharm 编程环境和环境变量配置[通俗易懂]

    PYQT5 pycharm 编程环境和环境变量配置[通俗易懂]基本的环境配置

  • 数据不平衡之SMOTE算法

    数据不平衡之SMOTE算法在企业的数据分析中,很少会遇到正负样本数据比例平衡的状况。通常情况是,绝大多数为正样本,而只有极少数(几个或者十几个)负样本。在这种情况下,不论是用LR,SVM或者基于提升方法的随机森林,直接用该数据集进行学习的效果都不会太好,原因是这些方法的学习结果都会偏向于样本较多的一类。另一个方面,对学习结果进行评估时,假如正样本占95%,负样本仅占5%,这样甚至不需要学习,直接把所有新样本预测为正,准确率

  • 如何使用串口调试助手(调试串口)

    如何使用串口调试助手(调试串口)转载自:https://jingyan.baidu.com/article/54b6b9c0b3c8c02d583b4707.html如何使用串口调试助手(调试串口)很多时候,调试硬件需要用串口输出一些调试信息,用电脑USB口接收十分方便,串口调试软件很多,用习惯了还是觉得串口调试助手最为方便,这个也是因人而异吧,接下来带大家了解一下串口调试助手如何使用。工具/原料 windows电脑一台 USB接口线一根(用于连接硬件和电脑USB接口) 方法/步骤 1 下载.

  • 海贼王革命家—龙—实力到底如何?[通俗易懂]

    海贼王革命家—龙—实力到底如何?[通俗易懂]龙——整个海贼王世界中最神秘的人物,令世界政府最担心的存在,是所有迷最为期待的实力展现,他的身上好像有着无数的秘密等着尾田为我们揭晓。路飞的父亲——未来的海贼王、卡普的儿子——海军英雄、革民军首领—

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号