登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 862|回复: 0

第一个shell脚本

[复制链接]

 成长值: 35920

8169

主题

7094

帖子

6831

现金

黑狼创办人

Rank: 12Rank: 12Rank: 12

积分
6831
发表于 2017-10-26 01:29:21 | 显示全部楼层 |阅读模式 来自 美国
工作太忙了,所以一直没有更新,今天来看看最简单的shell脚本的入门的知识,什么是shell script呢?其实就是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与命令写在里面,搭配有正则表达式、管道命令与数据流重定向等功能,以达到我们所想要的处理的目的。简单来说可以看成批处理文件,或者是一个程序语言而这个程序语言都是利用shell与相关工具命令,所以不需要编译就可以执行,同时拥有不错的排错(debug)工具。
一、shell脚本编写的注意事项:

1.命令的执行是从上而下、从左到右地执行的
2.命令执行时命令、参数间的多个空白都是会被忽略掉的
3.空白行也将会被忽略掉,并且【tab】按键所形成的空白同样视为空格键
4.如果遇到一个回车键[Enter]符号,就会开始执行改行(或者改串)命令
5.如果一行内容太多可以使用"\[Enter]"符号来扩展到下一行
6.#号是作为批注,在#号后面的内容全部被当作批注文字而被忽略
二、shell脚本执行的方式
假设当前shell脚本的位置是/home/yunzhongmuge/shellscript-practice/first.sh
1.直接命令执行
这种方式执行的时候,shell脚本需要拥有可读(r)与可执行(x)的权限,这个也分三种情况,如下:
a.绝对路径:使用/home/yunzhongmuge/shellscript-practice/first.sh来执行
b.相对路径:如果在shell脚本的所在目录,则./first.sh来执行
c.利用PATH变量:将first.sh这个脚本放到PATH这个环境变量里面。
2.使用bash进程来执行:这时不需要考虑shell脚本是否具有可读与可执行的权限,直接bash first.sh执行即可。
三、编写shell脚本的良好习惯

一个优秀的程序猿总会注意养成一个好的编码规范习惯,同样编写shell脚本也是需要一个良好的习惯,这些习惯大概有如下几个点:
1.shell脚本文件头里面记录好,这个脚本的功能、版本信息、编写者姓名与联系方式、版权声明方式、历史记录等
2.自行定义好一些需要用到的环境变量,毕竟每个人的环境变量都不一样,为了取得较好的执行环境,最好设置好对应的环境变量,如PATH变量。
3.脚本当中比较重要的地方添加上相应的备注,可以帮助自己或者阅读你脚本的人理解。
4.程序编写最好使用嵌套方式,最好能使用【tab】键的空格缩进,这样代码看起来非常有条理性。
5.进行编写是最好使用vim而不是vi,因为vim有额外的语法校验机制,能够在编写的第一时间内发现语法方面的问题。
四、例子

1.编写第一个shell脚本
在程序猿的圈子里有很多梗,第一个接触到的应该就是hello world了,我记得当时我开通微博的时候发表的第一条微博就是hello world!所以这里的第一个脚本就从hello world开始,如下:
IgPPyoLKoIOOOgPO.jpg
first.sh
这里稍微解释一下,第一行#!/bin/bash这个是声明本脚本使用的shell的名称,然后第二第三行说明这个脚本的功能,第四第五行是这个脚本的历史记录与作者的联系方式等,这里显示一个hello world这个字符串我们使用了一个函数,函数的功能就相对比较多了,后面如果想扩展也好扩展。
然后我们添加可以执行的权限,采用的是相对路径的执行方式,如下图:
Y5Q6TZhqTGo91763.jpg
print hello world!
这样我们就通过脚本将hello world这个字符串输出来了,是不是很简单呢!下面我们来一个实用点脚本。
2.实战类型的脚本
在很多时候我们如果进行多服务器维护过程中,会进行判断所获取到的服务器的IP是否是合法的地址,这时我们就需要写一个脚本进行判断一下,如下:
fSoGnaSOSHVdHnlU.jpg
checkIP.sh
同样的这里定义个检查IP的一个函数,然后使用输入的IP的进行判断IP是否合法,这时我们对该脚本添加可执行权限,然后执行一下,验证一下其功能,如下图:

jFVyZ8qFY7TmQ728.jpg
check
从上面的输出我们可以看到我们这个脚本的功能是达到了,但输入的IP不合法是能够显示出来,当然我们在实际操作的时候就不是让它输出来,可以让它返回一个0或者1作为标志位,这样我们就可以根据这个值做相应的操作。好了本次分享到此结束,good luck!

May you share freely, never taking more than you give.
亲,关注、评论、点赞、收藏、转发一下呗!谢谢!




上一篇:手把手教你在Linux下制作好玩的shell脚本(24)
下一篇:[Linux Shell]简单的文件查找脚本
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-14 15:41 , Processed in 0.057437 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表