• 使用shell脚本来自动化处理我们的工作,解放双手


    Shell脚本介绍

    1、Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。
    2、Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执行程序,如果熟练掌握Shell脚本,可以让我们操作计算机变得更加轻松,也会节省很多时间。
    3、Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有:
    (1)、bash:是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。
    (2)、sh: 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。
    另外还有:ash、 csh、 ksh等。

    常见的编程语言分为两类:一个是编译型语言,如:c/c++/java等,它们远行前全部一起要经过编译器的编译。另一个解释型语言,执行时,需要使用解释器一行一行地转换为代码,如:awk, perl, python与shell等。

    4、使用场景,能做什么
    (1)、将一些复杂的命令简单化(平时我们提交一次github代码可能需要很多步骤,但是可以用Shell简化成一步)
    (2)、可以写一些脚本自动实现一个工程中自动更换最新的sdk(库)
    (3)、自动打包、编译、发布等功能
    (4)、清理磁盘中空文件夹
    总之一切有规律的活脚本都可以尝试一下

    编写一个简单的shell脚本

    #!/bin/bash
    # 上面中的 #! 是一种约定标记, 它可以告诉系统这个脚本需要什么样的解释器来执行;
    echo "Hello, world!”
    

    将以上内容保存在一个.sh格式的文件中,执行以下命令
    bash test1.sh 或者 . test1.sh
    最后输出 Hello, world!

    创建一个shell脚本 ,通过shell脚本当前目录创建一个test文件夹,复制test1.sh文件到test文件夹里,进入文件夹test初始化一个npm并按照一个npm模块,通过执行 bash test2.sh命令

    #!/bin/bash
    # 上面中的 #! 是一种约定标记, 它可以告诉系统这个脚本需要什么样的解释器来执行;
    
    echo "test2.sh start..."
    mkdir test
    cp -rf test1.sh test/
    cd test
    npm init
    npm i --save lodash
    echo "test2.sh end..."
    

    写成一行,使用&&符号连接

    mkdir test && cp -rf test1.sh test/  && cd test && npm init && npm i --save lodash
    

    行尾使用反斜杠使其能接着输入其他命令,不马上执行命令

    echo "test2.sh start..."
    mkdir test && 
        cp -rf test1.sh test/ && 
        cd test && 
        npm init && 
        npm i --save lodash
    echo "test2.sh end..."
    

    行尾添加反斜杠 ,作用是不马上执行命令可接着输入其他命令,如下

    [yd@bogon:~/Documents/www/workspa/test/shell]$ mkdir test2 && 
    > cd test2 && 
    > npm init && 
    > npm install loadsh --save
    

    shell脚本参数传递,通过$0,$1,$2可以接收命令行传递的参数,$0 就是你写的shell脚本本身的名字,$1 是你给你写的shell脚本传的第一个参数,$2 是你给你写的shell脚本传的第二个参数

    复制以下内容到test2.sh文件中

    echo "shell脚本本身的名字: $0"
    echo "传给shell的第一个参数: $1"
    echo "传给shell的第二个参数: $2”
    

    然后 执行命令bash test2.sh 1 2,可以看到输出结果
    shell脚本本身的名字: test2.sh
    传给shell的第一个参数: 1
    传给shell的第二个参数: 2

    编写一个自动提交git的shell脚本

    创建gitautopush.sh文件,将以下内容复制进去

    #!/bin/bash
    # 上面中的 #! 是一种约定标记, 它可以告诉系统这个脚本需要什么样的解释器来执行;
    
    echo "gitautopush start..."
    git add .
    git commit -m $1
    echo "git提交注释:$1"
    git push origin master
    echo "gitautopush end..."
    

    以上自动提交git脚本就写好了,现在输入以下命令执行脚本
    bash gitautopush.sh 自动提交测试

    控制台输出 ,代码已经成功提交到git服务器了

    gitautopush start...
    [master be8d56b] shell
     3 files changed, 51 insertions(+)
     create mode 100644 shelldemo/gitautopush.sh
     create mode 100644 shelldemo/test1.sh
     create mode 100644 shelldemo/test2.sh
    git提交注释:自动提交测试
    Counting objects: 6, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (6/6), done.
    Writing objects: 100% (6/6), 1.14 KiB | 1.14 MiB/s, done.
    Total 6 (delta 2), reused 0 (delta 0)
    remote: Resolving deltas: 100% (2/2), completed with 1 local object.
    To https://github.com/fozero/frontcode.git
       2e79d26..be8d56b  master -> master
    gitautopush end...
    

    参考

    https://www.cnblogs.com/gaosheng-221/p/6794429.html
    https://www.cnblogs.com/yinheyi/p/6648242.html

  • 相关阅读:
    KMP算法中next数组的构建
    vijos 1243 生产产品
    codeforces 557E Ann and Half-Palindrome
    codeforces 557D Vitaly and Cycle
    vijos 1054 牛场围栏 【想法题】
    oracle数据库基本操作
    一位90后程序员的自述:如何从年薪3w到30w
    Oracle 树操作(select…start with…connect by…prior)
    oracle中的条件语句
    重置按钮_reset
  • 原文地址:https://www.cnblogs.com/fozero/p/9134543.html
Copyright © 2020-2023  润新知