Shell脚本编程(二)

shell脚本编程中if、if else的使用以及一些常用到的操作符


if、if else使用方式:
     1) if条件
         if [ condition ];    #condition为判断条件,condition两边必须有空格,否则执行将报错
         then
                 commands;  #commands为执行语句
         fi
     2) else if和else
         if [ condition ]; 
         then
                commands;
         else if condition;then
                commands;
         else
                commands;
         fi

算数比较 
      对变量或值进行算数条件判断:
      条件通常被放置在封闭的中括号内,一定要注意两边的空格!!!
      [ $var -eq 0 ]    #当$var等于0时,返回真
      [ $var -ne 0 ]    #当$var不等于0时,返回真
      其他重要的操作符如下:
      -gt :  大于
      -lt :小于
      -ge : 大于或等于
      -le : 小于或等于
       可以按照下面的方法结合多个条件进行测试:
       [ $var1 -ne 0 -a $var2 -gt 2 ]   #使用逻辑与-a,即and
       [ $var1 -ne 0 -o $var2 -gt 2]    #使用逻辑或 -o,即or
 
文件系统相关测试
我们可以使用不同的条件标志测试不同的文件系统相关的属性

[ -f $file_var ]  :  如果给定的变量包含正常的文件路径或者文件名,则返回真
[ -x $var ]:如果给定的变量包含的文件可执行,则返回真
[ -d $var ] : 如果给定的变量包含的是目录,则返回真
[ -e $var ] : 如果给定的变量包含的文件存在,则返回真
[ -c $var ] : 如果给定的变量包含的是一个字符设备文件的路径,则返回真
[ -b $var ] : 如果给定的变量包含的是一个块设备文件的路径,则返回真
[ -w $var ] :如果给定的变量的文件可写,则返回真
[ -r $var ] : 如果给定的变量的文件可读,则返回真
[ -L $var ] : 如果给定的变量包含的是一个符号链接,则返回真
 
使用方法如下:
fpath="/etc/passwd"
if [ -e $fpath ];then
     echo File exists;         #意思也就是如果有passwd这个文件则打印File exists,否则打印Does not
else
     echo Does not;
fi
其他的自己可以实践下

字符串比较
使用字符串比较时,最好使用双中括号,因为有时候采用单括号会出错,最好避免。
[ [ $var1 > $var2  ] ]   #如果var1的字符序var2大,则返回真
[ [ $var1 < $var2  ] ]   #如果var1的字符序var2小,则返回真
[ [ $var1 == $var2  ] ]   #如果var1的字符序var2相等,则返回真
[ [ -z $var1 ] ]   #如果var1为空串,则返回真
[ [ -n $var1 ] ]   #如果var1为非空字符串,则返回真

实例:
     str1="Not empty"
     str2=""
     if [ [ -n $str1 ] ] && [ [-z $str2 ] ];
     then
            echo str1 is nonempty and str2 is empty string
     fi


     



      

Shell脚本编程(二)的更多相关文章

  1. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  2. Shell脚本编程总结及速查手册

    Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...

  3. Shell脚本编程具体解释

    第12章 Shell脚本编程   l  Shell命令行的执行 l  编写.改动权限和运行Shell程序的步骤 l  在Shell程序中使用參数和变量 l  表达式比較.循环结构语句和条件结构语句 l ...

  4. shell脚本编程基础

       最近学习了shell脚本编程,感觉自己的脚本写的不太好,所以想把shell脚本相关的知识系统的整理一下,便于以后的学习和使用. 一.shell脚本基础    shell脚本是利用shell的功能 ...

  5. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

  6. 【Shell脚本编程系列】知识储备以及建立规范的脚本

    前言 学习shell脚本编程需要的知识储备: vi/vim编辑器命令 vimrc设置要熟练 基础命令,100多个要熟练 基础和常用的网络服务命令要会:nfs . rsync. inotify . la ...

  7. shell脚本编程及bash特性

    bash特性及bash脚本编程初步 终端,附着在终端的接口程序; GUI: KDE,GNome,Xfce CLI: /etc/shells bash的特性: 命令行展开: ~,{} 命令别名: ali ...

  8. 浅谈自底向上的Shell脚本编程及效率优化

    作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ...

  9. SHELL脚本编程-expect

    SHELL脚本编程-expect 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.expect概述 1>.expect介绍 expect 是由Don Libes基于Tcl( ...

  10. SHELL脚本编程-字符串处理

    SHELL脚本编程-字符串处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符串切片 [root@node101.yinzhengjie.org.cn ~]# echo { ...

随机推荐

  1. 2020/513-笔记:怎么知道Oracle数据库一个中文汉字占几个字节

    1. 执行语句:             select userenv('language') from dual; 如果显示如下:             SIMPLIFIED CHINESE_CH ...

  2. navicat for mysql (本人亲测,真实有效)

    参考: https://www.cnblogs.com/myprogramer/p/10534481.html 第一步:下载软件 先从Xclient上下载下来Navicat Premium 12.0. ...

  3. vs调试导入功能时莫名自动结束调试

    新装了vs2022,默认下图所示的地方打勾,导致调试文件导入功能时触发了自动结束调试,真是坑爹~~

  4. fetch请求方式

    Fetch请求的方式 1:GET 请求 // 未传参数 const getData = async () => { const res = await fetch('http://www.xxx ...

  5. python使用zipfile压缩文件,包括空目录

    zipfile压缩文件.包括空目录 # !/usr/bin/python import os import zipfile def zipdir(dirPath=None, zipFilePath=N ...

  6. vitrualbox虚拟机搭建

    参考:https://blog.csdn.net/weixin_45115705/article/details/100661644?depth_1-utm_source=distribute.pc_ ...

  7. 如何加密一个sheel脚本!

    脚本写完后,如果要发布给其它人使用的话,可能会因安全原因而受阻,特别是脚本中包含密码等原因,而对脚本加密则可以解决此问题,本文提供了CentOS7/8环境下,加密shell脚本需要安装的程序和方法. ...

  8. ASM1117脚位图

  9. IDEA中使用JDBC连接MySQL数据库报错:No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 的解决方法

    在IDEA中使用JDBC连接MySQL,程序运行之后报错: 定位到第16行: 根据上面报错提示,在url参数字段最前面添加参数  useSSL=false  : 再次运行程序,成功连接到数据库!

  10. SpringBoot笔记--自动配置(高级内容)(中集)

    @Enable*注解 使用该注解,需要导入相应的依赖坐标,其中的groupId标签里面写入Bean的Java文件所在的包的路径下面 spring-enable-other 还需要在SpringBoot ...