• shell脚本--1


    1.创建shell脚本文件

      shell脚本文件第一行必须指定要使用shell。格式为:#!/bin/bash。

        例如:

      在写好shell脚本之后,需要运行shell脚本。运行shell脚本时,有两种方法,第一,可以将shell脚本所在的目录添加到环境变量PATH中;第二,在命令行中使用文件的路径来引用shell脚本。

      在采用第二种方式时,需要判断是否有执行该shell文件的权限。

      

      在我的环境下,是有x权限的。如果没有的话,可以使用chmod命令来修改文件的权限。

      最后采用相对路径的方法来执行脚本文件。

      

    2.显示消息

      echo 可以用来显示字符串。在显示字符串时,可以不使用引号。而如果字符串中不含有 ‘  或者 “  ,要显示的字符串可以不使用引号,否则要使用与字符串中的引号不相同的引号。

      在命令中:

      

      利用shell脚本:  

      

      其输出结果为:

      

    3.使用变量

      可以在shell脚本中直接使用环境变量,需要和$一起使用。例如:echo $PATH

      也可以在shell脚本中定义自己的变量。shell脚本会自动决定变量的数值类型。同样,在使用变量时,需要和$一起使用。

      

    4.反引号

      反引号是不同于 ’ ,反引号和~位于用以键位。其作用是将shell命令的输出赋给变量。

      其输出结果为

    5.输入重定向

      输入重定向是将命令的输出发到一个文件当中。shell中采用 > 来完成输入重定向。

      例如:date > file 表示将date的结果输入到文件file中。如果file已经存在,则新文件覆盖旧文件。

      

      如果想在原有的文件中追加结果,则使用 >> .

      

    6.输出重定向

      输出重定向是将文件的内容重定向到命令当中。shell中使用  < 来表示输出重定向。

        wc命令计算了 file 文件的行数,词数和字节数。

      另外,还可以将命令行中的内容重定向到命令当中,即内联输入重定向。用 << 来表示。

       

      上图中,<< 右边的 eof 标记了文本的开始和结尾。该标记可以是任意字符串,再比如 wc << end  .....  end ,则输出两个end之间的wc的值。

    7.管道

      管道也是某个命令的结果作为另一个命令的输出,和重定向有些类似。管道用 | 来表示。

      在使用管道时,命令是同时运行的,即前一条命令产生结果的同时会立即传送给第二条命令。例如  ls -l   |  sort,即将 ls -l 第一条结果输出给sort,再将第二条结果输出给sort......,在整个过程中,是不会使用到任何中间文件或者缓冲区的。

      管道常见的使用场景是 ls -l  | more 。当一个目录中的文件比较多时,使用more命令可以强制一条一条的输出每条数据。

    8.数学运算

      在shell脚本中使用数学运算可以使用方括号。

        其运行结果为

      由上图可见,第一个输出只是对变量进行了简单的替换,而第二个输出则进行了运算。

      shell中不支持浮点数运算。对于小数除法,只进行了整数计算,比如10/3的结果是3.可以利用shell中的bc计算器来进行浮点数计算。

      

      在命令行中输入bc后会进入bc计算器模式,然后就可以进行计算。scale是一个内建的可以控制浮点运算的变量。利用这个变量可以控制小数点的位数。如上图所示。

      

      上图显示了在脚本中使用bc计算器。其中变量var3就采用了bc计算器进行了浮点运算。

    9.退出脚本

      shell中的每个命令都有退出状态码,可以使用$?来产看一条命令执行完成后的退出状态码,并且仅能查看上个命令的退出状态码。

        输出结果为0说明命令执行正确。

      其他的linux的退出状态码比如1(发成未知错误),2(误用shell命令),126(命令不可执行)等等。

      另外,可以返回自己的退出状态码。即可以在脚本结束时指定一个退出状态码。

         

         

      在上述脚本的结束时指定了退出状态码400,执行脚本后输出状态码时其结果为144.因为状态码的最大值为255,所以最终输出的值会是设定值除256的余数。在本例中为400除256的余数,所以为144.

  • 相关阅读:
    前端模板引擎编译
    h5与app混合开发,jsbridge
    vuex
    async await promise
    node端口被占用
    npm工作流 与webpack 分同环境配置
    GraphQL
    mybatis批量删除、插入
    Oracle数据库速查知识文档
    Oracle刷新物化视图
  • 原文地址:https://www.cnblogs.com/healthylife/p/6086661.html
Copyright © 2020-2023  润新知