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. leedcode 刷题-V2

    leetcode 字符串类 数组类 链表类 树类 二叉树类 图类 数学类 数据结构类 1. 稀疏相似度 (倒排索引) (https://leetcode-cn.com/problems/sparse- ...

  2. django静态文件,form表单提交数据,连接mysql,操作ORM

    静态文件配置 1. 什么是静态文件 css js img ... 2. 静态文件的存储位置 ''' 我们在创建Django项目的时候,没有生成static目录,我们会把静态文件存储在static目录下 ...

  3. MyBatis-Plus 代码生成器超详细讲解

    参见:    https://www.jianshu.com/p/9d8ab1bb84bb

  4. redhat7.6配置本地yum源

    redhat7.6配置本地yum源 将光盘或者iso文件挂载到 /mnt 目录下 查看配置文件 [root@zqds122 mnt]# cat /etc/yum.repos.d/rh7ISO.repo ...

  5. 《Unix/Linux系统编程》第十一周学习笔记

    <Unix/Linux系统编程>第十一周学习笔记 TCP/IP协议 TCP/IP 是互联网的基础.TCP代表传输控制协议.IP代表互联网协议.目前有两个版本的IP,即IPv4和IPv6.I ...

  6. java_day23~24

    Java基础 GUI编程 核心技术:Swing.AWT 现在GUI并不流行 因为其界面不美观.需要依赖jre环境 Swing public class Demo1 { //init();初始化 pub ...

  7. Centos7安装nodejs(npm)

    执行命令: 设置yum安装源> curl --silent --location https://rpm.nodesource.com/setup_14.x | sudo bash (14是大的 ...

  8. Vue解决后台传过来的时间展示时带T

    用空格替换: {{scope.row.ctime.toLocaleString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')}} 参考作者:https: ...

  9. Linux完全卸载mysql的方式

    //rpm包安装方式卸载查包名:rpm -qa|grep -i mysql删除命令:rpm -e –nodeps 包名 //yum安装方式下载1.查看已安装的mysql命令:rpm -qa | gre ...

  10. 微信开发 回复用户消息 .net C#

    前段时间开发了公司的微信 这里做个知识总结分享下经验,望一起学习..... 感觉后面写个系列的最好了 .... 企业需求: 给指定企业用户发送消息:如考勤信息. 企业通知.个人信息推送等等, /// ...