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

使用shell脚本来自动化处理我们的工作,解放双手的更多相关文章

  1. Shell脚本,自动化发布tomcat项目【转载】

    Shell脚本,自动化发布tomcat项目脚本. 1. vko2c_auto_build_by_scp.sh 文件内容: #---------------------start------------ ...

  2. Shell脚本,自动化发布tomcat项目【转】

    Shell脚本,自动化发布tomcat项目脚本. 1. vko2c_auto_build_by_scp.sh 文件内容: #---------------------start------------ ...

  3. Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务

    本文转载自:https://blog.csdn.net/tototuzuoquan/article/details/73251616 1.Azkaban实战 Azkaba内置的任务类型支持comman ...

  4. 使用shell脚本完成自动化部署及秒级回滚

    一.部署机代码目录结构 使用www用户进行代码部署,所有部署机上需要创建www用户,并赋予根目录权限,同时配置公私钥认证建立信任关系. [www@ansible-node1 deploy]$ tree ...

  5. shell脚本实现自动化备份

    1.备份规则: 在生产环境中有若干服务器需要定时将服务器中应用程序,以及数据库等进行备份.要求在本地服务器中保存近一周的备份,备份服务器中保存最近一月的备份文件.                    ...

  6. shell脚本实现自动化安装linux版本的loadrunner agent(centos6.8)

    #!/bin/bash #Centos6下安装LoadRunner负载机 #@author Agoly #@date #@source 高级测试技术交流圈: yum -y install expect ...

  7. Shell脚本- 单条命令循环执行重复工作

    关于shell for循环具体详细说明可参考:http://wiki.jikexueyuan.com/project/linux-command/chap34.html example: 分别在com ...

  8. Shell脚本编写

    1.什么是Shell脚本 Shell脚本是利用 shell 的功能所写的一个程序 program,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式.管 ...

  9. 什么是 Shell 脚本?

    Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Windows Explorer 是一个典型的图形 ...

随机推荐

  1. Android app中存储文件的路径

    // 获得缓存文件路径,磁盘空间不足或清除缓存时数据会被删掉,一般存放一些临时文件 // /data/data/<application package>/cache目录 File cac ...

  2. 【轻松前端之旅】HTML的块元素、行内元素和空元素

    块(block)元素 显示成一块,前后有换行.块元素常用于web页面的主要构造模块.例如:<div>,<p>,<h1>~<h6>,<blockqu ...

  3. PHP-预定义函数访问数据库

    (1)复习:自定义函数 (2)调用PHP预定义的函数——访问MySQL数据库 1.函数的基础概念   定义一个简单的函数: function  函数名( ){ #函数主体 }  调用/运行一次函数: ...

  4. PHP-自定义数组-预定义数组-自定义函数-预定义函数

    (1)自定义数组 —— 项目中的重点 (2)PHP预定义数组 —— 重点&难点 (3)自定义函数 —— 了解 (4)PHP预定义函数 —— 项目中的重点 1.自定义数组 数组:array,一个 ...

  5. python_day1_数据类型

    数据类型: python基本数据类型有:int(整型),str(字符串),list[](列表),dict{}(字典),li()(元祖)bool(布尔) 注:还有一个Long(长整型),python3里 ...

  6. Windows平台下载Android源码(整理)

    Google官方下载源码使用的系统Ubuntu系统,不过现在我们需要在Windows系统中下载Android源码文件. 网站的地址是:https://android.googlesource.com/ ...

  7. 利用蒙特卡洛(Monte Carlo)方法计算π值[ 转载]

    部分转载自:https://blog.csdn.net/daniel960601/article/details/79121055 圆周率π是一个无理数,没有任何一个精确公式能够计算π值,π的计算只能 ...

  8. SpringCloud总结

    初级入门使用轮廓,整理一下思路

  9. javascript 内存模型

    我对于 JavaScript 的内存模型一直都比较困惑,很想了解在操作变量的时候,JS 是如何工作的.如果你和我有同样的困惑,希望这篇文章能给你一些启发. 译文,喜欢原文的可以直接拉到底部 当我们声明 ...

  10. kubernetes集群搭建(1):环境准备

    了解kubernets 本次搭建采用的是1个master节点,2个node节点,一个私有docker仓库 1.设置各节点ip信息 2.设置hostname(其它节点也需修改) vi /etc/sysc ...