使⽤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."
mkdir test
cp -rf test1.sh test/
cd test
npm init
npm i --save lodash
echo "test2."
写成⼀⾏,使⽤&&符号连接
mkdir test && cp -rf test1.sh test/ && cd test && npm init && npm i --save lodash
⾏尾使⽤反斜杠\使其能接着输⼊其他命令,不马上执⾏命令
echo "test2."
mkdir test && \
cp -rf test1.sh test/ && \
cd test && \
npm init && \
npm i --save lodash
echo "test2."
⾏尾添加反斜杠 ,作⽤是不马上执⾏命令可接着输⼊其他命令,如下
[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 ""
git add .
shell最简单脚本git commit -m $1
echo "git提交注释:$1"
git push origin master
echo ""
以上⾃动提交git脚本就写好了,现在输⼊以下命令执⾏脚本
bash gitautopush.sh ⾃动提交测试
控制台输出,代码已经成功提交到git服务器了
[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 github/fozero/frontcode.git
2e79d26..be8d56b master -> master
参考
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论