`
fionajw
  • 浏览: 22938 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Shell 学习笔记(三)状态码 条件判断 算术操作

    博客分类:
  • Bash
阅读更多

 1、!

       逻辑 "非"操作符

       反转命令或条件测试的结果, 并且这会影响退出状态码.

       ! echo "a"  #!后面需要空格, $?则为1

      

       bash历史命令机制

       !<历史命令头几个字符>     #则打印命令,执行命令,注意无空格,且此机制在脚本执行中被禁用

 

2、广泛的if

       "if COMMAND"结构将会返回COMMAND的退出状态码

       #比较文件

       if cmp a b &> /dev/null  # 禁止输出.
          then echo "Files a and b are identical."
          else echo "Files a and b differ."
       fi
  
       #非常有用的"if-grep"结构:
       if grep -q Bash file
          then echo "File contains at least one occurrence of Bash."
       fi

       #if测试条件可以嵌套

       if echo "Next *if* is part of the comparison for the first *if*."

             if [[ $comparison = "integer" ]]       #上一行if的复杂测试条件
               then (( a < b ))         #数字比较        
               else  [[ $a < $b ]]     #字符串字符序比较
             fi

       then
            echo '$a is less than $b'
       fi

      

       #if [ ] 测试

       if [ xyz ]    # 字符串、任意数字均为真,未声明变量为假,注意要有空格,否则报错


3、test [ ]  [[ ]]  (( ))

       if test -z "$1"         ==  if [ -z "$1" ]
       使用[[ ... ]]条件判断结构, 而不是[ ... ], 能够防止脚本中的许多逻辑错误. 比如, &&, ||, <, 和> 操作符能够正常存在于[[ ]]条件判断结构中, 但是如果出现在[ ]结构中的话, 会报错

 

       []条件判断也不一定非得要if不可, 也可以使用列表结构. e.g.  [ "$var1" -ne "$var2" ] && echo "$var1 is not equal to $var2"
      

       (( )): 扩展并计算一个算术(整数)表达式的值. 如果表达式的结果为0, 那么返回的退出状态码为1, 或者是"false". 而一个非零值的表达式所返回的退出状态码将为0, 或者是"true"

 

4、文件测试符

       -e : 文件存在

       -f  : 存在且不为目录和设备文件

       -d : 目录存在

       -s :  文件大小不为零

       -r -w -x  :  文件是否具有可读、写、执行权限

       f1 -nt f2 :  文件f1比文件f2

       f1 -ot f2 :  文件f1比文件f2

 

5、字符串测试符

      [ $a == z* ]        # 如果$a以"z"开头(模式匹配)那么结果将为真
      [ "$a" == "z*" ]  # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真.

     

      <小于,依照ASCII字符排列顺序        >  与此相同

                if [[ "$a" < "$b" ]]

         if [ "$a" \< "$b" ]             #注意"<"字符在[ ] 结构里需要转义

              

       -z  : 字符串为"null",即是指字符串长度为零。
       -n  : 字符串不为"null",即长度不为零.

 

6、算术操作符

       ** 求幂

       算术操作符经常会出现在 exprlet表达式中.

       let “a=5**3”

       expr 5%3

 

7、数字表示

       8进制: 以 0 开头

       16进制: 以'0x'或者'0X'开头的数字

       其他进制: BASE#NUMBER, BASE的范围在2到64之间,NUMBER受限于ASCII字符范围(2 - 64):10个数字 + 26个小写字母 + 26个大写字符 + @ + _
       e.g.  let "b64 = 64#@_"      # 4031
       

分享到:
评论

相关推荐

    Shell学习笔记

    本文档《Shell学习笔记》详细介绍了Shell脚本编写的基础知识和一些高级技巧,包含了多个主题,例如终端操作、环境变量使用、数学运算、文件描述符、数组和关联数组、别名使用、终端信息获取、日期和时间处理、脚本...

    linux脚本shell学习笔记

    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识

    shell学习笔记(自理版)

    shell学习笔记的主要内容是 shell 变量、环境变量、条件判断语句、循环语句等。下面对这些知识点进行详细的解释。 一、shell 变量 shell 变量可以分为系统变量和环境变量。系统变量主要用于对参数判断和命令...

    Shell学习笔记总结

    Shell 学习笔记总结 本资源是 Shell 学习笔记的总结,涵盖了 Shell 的基本概念、类型、变量、进程、权限、管道、POSIX、grep、sed、awk 等命令和编程语言。 一、 Shell 的类型和特点 Shell 是一种命令行界面,...

    shell编程学习笔记

    shell脚本成分 开头和注释: shell脚本的开头,用来解释shell程序,包括:#!/bin/bash、#!/bin/csh、#!/bin/tcsh、#!/bin/pdksh,一般用#!/bin/bash。。 shell脚本中的注释,以#开头的...

    Bash shell 学习笔记

    ### Bash Shell 学习笔记知识点概览 #### 1. 引言 - **Shell**:作为用户与操作系统之间的桥梁,Shell提供了一种与系统进行交互的方式,支持用户执行命令和编写脚本来自动化任务。 - **Bash**:是Bourne-Again ...

    Shell脚本学习笔记

    自己整理的Shell脚本学习笔记,脚本实例可直接运行:1. 变量和字符串;2. 传递参数;3. 基本运算符;4. echo&printf;&test;;5. 流程控制;6. 函数;7. 输入输出重定向&文件嵌入

    Linux教程+ shell学习笔记 + Shell脚本常用命令+shell脚本100例资源合集

    本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...

    shell script编程学习笔记

    ### Shell Script 编程学习笔记 #### 一、Shell 脚本初窥 ##### 示例: ```bash #!/bin/sh # 第1行:指定脚本解释器(声明使用的shell名称),这里是用/bin/sh做解释器的。“#!”是一个约定的标记 cd ~ # 第2行:...

    linux shell个人学习笔记,绝对极品

    总的来说,这份“Linux Shell个人学习笔记”涵盖了从基础命令到高级脚本编程的广泛内容,适合想要提升Linux操作技能或准备系统管理员考试的读者。通过深入学习和实践,你可以成为一个熟练的Linux用户,甚至成为一名...

    shell脚本编程学习笔记汇总

    本文档总结了 Linux shell 脚本编程的学习笔记,涵盖了 shell 脚本的定义、编写、权限、存放位置、函数、变量、IF 控制语句、命令退出状态等知识点。 一、shell脚本的定义 shell 脚本是一个包含一系列命令的文件,...

    shell学习笔记.docx

    ### Shell学习笔记知识点详解 #### 一、变量定义与引用 **定义变量注意事项:** - **定义格式**:在Shell脚本中定义变量时,变量名与等号(`=`)之间不能有空格。 - 正确示例:`var1=value` - 错误示例:`var1 ...

    Bash_shell学习笔记

    根据给定的"Bash shell学习笔记"文件信息,我们可以从中提炼出多个重要的IT知识点,具体如下: ### 1. 引言 - **Shell的角色**:Shell作为一个命令解释器和编程语言,在用户与UNIX/Linux系统内核之间提供了一个桥梁...

    Shell 学习笔记 word ppt

    Shell学习笔记主要关注的是Linux或Unix系统中的命令行界面(CLI)交互,特别是Shell脚本编程。Shell是一种命令解释器,允许用户通过命令行输入来执行操作系统任务,同时,它也是一种编程语言,可以编写自动化脚本来...

    Linux常用命令和管理08-shell之脚本编程条件判断及算术运算1

    Linux 命令和管理 - shell 之脚本编程条件判断及算术运算 本资源摘要信息涵盖了 Linux 命令和管理中的 shell 编程基础知识,包括变量声明、算术运算、条件判断和脚本编程等方面。 变量声明 在 Bash 中,变量声明...

    Linux Shell学习笔记

    Linux shell是学习Linux必须掌握的脚本之一,该文档为本人学习Shell脚本时总结的一些基础知识,包括Shell的语法、简单示例和总结,欢迎下载学习。

    shell学习笔记-2018-01-09

    ### Shell学习笔记 #### Shell的发展与分类 Shell作为Unix及类Unix系统(包括Linux)的主要用户界面之一,其历史可以追溯到20世纪70年代。最初,Shell仅仅作为一个简单的命令解释器,随着时间的推移,它发展成为了...

Global site tag (gtag.js) - Google Analytics