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 文件名  如果文件存在且为块特殊文件则为真

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数组转化为list

    数组转化为list1、Arrays.asList(strArray)方式将数组转换List后,不能对List增删,只能查改,否则抛异常。此时是java.util.Arrays.ArrayList这里面有java.util.Arrays里面的内部类,里面没有重写增删方法,就会调用父类的AbstractList,可以看到父类的增删方法,就会报错,即使调用iterator也会报错。publicvoi…

    2022年6月29日
    28
  • datax(5):改造升级-自动识别py环境,执行datax任务

    datax(5):改造升级-自动识别py环境,执行datax任务1思考上篇文章已经研究过datax.py文件,产生2个问题:如果用户不是py2环境(datax默认要求环境)怎么处理;能不能有一个脚本自动识别用户的py环境,从而执行datax任务2效果在py2或py3下执行下面命令>pythondatax.py../job/job.json熟悉的配方,熟悉的味道。什么都没有变,但是背后却做了很多事情;3改造过程3.1编写py3的datax脚本共计3个文件===datax.py文件===#!/usr/bin/envpyt.

    2022年5月17日
    97
  • goland2021 激活码[在线序列号]「建议收藏」

    goland2021 激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    123
  • mean shift应用_使用Google地图制作MEAN应用(第二部分)

    mean shift应用_使用Google地图制作MEAN应用(第二部分)meanshift应用介绍(Introduction)Welcomeback!欢迎回来!Lasttime,wecreatedanapplicationthatintegratedGoogleMapsdirectlyintotheMEANstack.Theappprovidedusapaneltocreateusers,tagthe…

    2022年5月15日
    35
  • EnterpriseLibrary 介绍[通俗易懂]

    EnterpriseLibrary 介绍[通俗易懂]创建数据库对象的方法http://tutuya.cnblogs.com/articles/441337.html

    2022年10月20日
    1
  • 培根密码解密_密码学解密

    培根密码解密_密码学解密密码学真的是一门很神奇的课程。 培根密码,简单的说说原理吧。就是类似于二进制0,1的套路,但是是用A,B来替代的。类如26字母表可以如下写:大写:AaaaaaBaaaabCaaabaDaaabbEaabaaFaababGaabbaHaabbbIabaaaJabaabKababaLababbMabbaa…

    2025年6月30日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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