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. 狂神学习笔记domo6

    1.新特性,1000000000可以写成10_0000_0000便于阅读 2.强制类型转换 先强制类型转换再赋值才能正确的结果 public class domo06 { public static ...

  2. 2020.6.6OO学期末总结

    0.前言 本次博客是对整个java及oo学习情况的一个概略性总结,目的在于反思这半年来的学习情况和实际感受,和具体学习方面的理解和问题. 1.作业过程总结 看着自己一个学期做的所有作业,我想起的是总是 ...

  3. manjaro日常使用之deepinTIM问题解决

    今天很高兴,因为我在我的manjaro+kde桌面上成功运行了deepinTIM.这样我离摆脱Windows使用的事业又更近了一步.众所周知,如果安装了kde桌面,deepinQQ的方案就无法运行,安 ...

  4. vuw3学习大全(2)

    # composition(组合式api) ## 1.为什么使用composition vue3里面不需要Mixins了?因为有compoition api 能讲逻辑进行抽离和复用 大型组件中,其中* ...

  5. Unity打包ARCore项目失败,但是其他安卓项目成功

    https://blog.csdn.net/lxbhahaha/article/details/111269980

  6. mysql 存储国过程实现竖表变横表(将行数据值变为字段)

    示例: 表结构如下: CREATE TABLE `pressure` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `presurena ...

  7. Linux部署JDK教程

    上一次说了windows下的jdk部署,这一次记录下Linux下的jdk部署,恰巧遇到一篇写的很清楚的教程,我就直接转过来啦,哈哈.. 一. 解压安装jdk 在shell终端下进入jdk-6u14-l ...

  8. Unity图片转存及读取

    [code]csharpcode: /// <summary> /// 加载图片 /// </summary> private Sprite LoadTexture(strin ...

  9. Bootstarp5第二弹

    四.网格系统 网格系统根据设备屏幕尺寸大小分为6类: col-<!--任意屏幕--> col-sm-<!--平板 - 屏幕宽度等于或大于 576px.--> col-md-&l ...

  10. 对于利用js实现表单的验证问题--其实菜鸟教程都有啦,但还是想要记录一下

    关于利用js实现表单的验证的实现 在jsp页面里面加上名为的标签,然后将以下代码跟奴自己的变量放进去: 记得要放在function的方法里面!!! 之后就需要在form标签里面加上onsubmit=& ...