shell脚本基础

shell脚本基础

基本介绍

Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高。换一种说法也就是,shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。

基础功能

  • 利用shell命令快速开发常规任务;

  • 综合应用grep、find、sed和awk等常用命令;

  • 凭借短短几个命令行从Web挖掘数据;

  • 利用归档工具运行并自动化各种任务,诸如自动备份和存储;

  • 理解文件系统、文件类型以及文件管理;

  • 用shell创建以及维护文件或目录归档、压缩格式和加密技术;

  • 通过srlell脚本设置以太网和无线LAN;

  • 使用登录技术监控网络上的各种动态;

脚本格式要求

  • 首行shebang机制(#!)

  • #!/bin/bash

  • #!/usr/bin/python

  • #!/usr/bin/perl

vi脚本格式示例

#!/bin/bash

#name:

#Author:

#Version: 1.0

#Date:2017-07-01 16::52:53

#Description:

#QQ:

#email:

shell脚本基础

  • 脚本中如果有语法错误可以用来:

        bash -n /path/to/some_script

  • 调试执行:

        bash -x /path/to/some_script

第一行的\#/bin/bash是声明这个脚本使用的shell格式,因为我们使用的是bash,所以必须要以“#!/bin/bash”来告诉别人这个脚本里的语法使用的是bash语法,这样它在执行的时候,就能加载bash相关配置文件,使我们的命令能够更好的执行下去。(如果不加,有可能脚本无法执行,无法判断脚本是使用的什么shell。当然如果默认选择bash格式,可以不写,但最好还是脚本第一行写上shebang机制,还有就是创建文本的时候,后缀加上.sh为结尾
上面示例中,除了第一行,其他的都是批示,其他都是注明了这个脚本的一些基本信息,一般加上,可以不加,加上是为了以后方便的知道这个脚本是用来做什么的,有助于以后的改写和调试。

简单范例

  • 在做任何事情都是从简单到复杂,学程序那我们就先显示“hello world”开始好了。

shell脚本基础

1. echo就是打印命令,就相当于我用echo,把“hello world”打印出来,然后使用这个脚本就可以直接显示在屏幕上。
  • 现在我们在写一个数值的运算,简单的加减乘除吧。

shell脚本基础

做数值运算:

1. 我们首先要做判断,如果用户输出的是字母或者字符呢?所以我们要判断他是不是数字。

2. 既然是数值运算肯定是两个参数进行运算,所以还要判断是不是两个参数进行运算。

3. 如果不是,那么提示用户“只能输入数字进行运算”并退出。

4. 这只是一个简单的加减乘除,相当于版本1,如果你后面有知识,可以把小数点加进去,或者进行方程式之类的,更加完善它,就可以当成一个日常使用的数字运算的脚本了。
(ps:前面判断需要用到(短路与)或者(短路或)就是&&与||)

执行方式

不同的脚本执行会有不同的结果。脚本的执行方式有很多种,当然肯定需要用chmod +x 给脚本加上执行权限。
  • . 脚本名.sh

  • source 脚本名.sh

  • sh 脚本名.sh

  • bash 脚本名.sh

    前两个执行时在父进程中执行,后两个会单独开个子进程执行。

shell脚本基础

脚本可以说很简单也可以很复杂,看你自己的需求,脚本就是把多个命令集合在一起,做成一个你所需求的脚本命令,他里面支持变量,支持函数,运算,test测试,正则等特别多的方法,集合起来,实现一个强大的命令,从而达到我们的目的。

原创文章,作者:Az2h1丶,如若转载,请注明出处:http://www.178linux.com/78967

(0)
Az2h1丶Az2h1丶
上一篇 2017-07-01 15:19
下一篇 2017-07-01 20:26

相关推荐

  • 文件查找命令find

      在文件系统上常常需要根据文件的各种属性去查找符合条件的文件。在Linux下也有相当优异的查找命令。今天只要将find和locate。find通常不常用,因为速度慢!通常我们先使用locate来进行模糊查找,如果真找不到了,才以find来查找。为什么呢?因为locate是利用数据库来查找数据,所以速度非常快,而且并没有实际查询硬盘比较省时间。 l…

    Linux干货 2016-08-22
  • 网络基础

    计算机网络     计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 1、网络通信设备     网络通信设备种类繁多,且日新月异,网络通信设备通常由网络线缆、网卡、集线器、中继器、网桥、交换机、路由器等组成。 网桥(Bri…

    Linux干货 2016-12-16
  • gitlib环境部署

         GitLab是利用 Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松…

    2016-05-19
  • MHA

    1.关于MHA MHA是一款开源的mysql的高可用程序,它为mysql主从复制架构提供了automating master failover功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其他从节点获取额外的信息来避免不一致性的问题。MHA还提供了master节点的在线切换…

    2016-11-26
  • bash脚本之for循环和while循环及包管理

    一.概述 上一章剩余内容 压缩工具 cpio 复制从或到文件 cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。 cpio[选项] > 文件名或者设备名 cpio[选项] < 文件名或者设备名 选项 -o 将文件拷贝打包成文件或者将文件输出到设备上 -i解包,将打包文件解压或将…

    Linux干货 2016-08-24
  • LINUX基础知识

    计算机的组成及其功能。 现代计算机体系将计算机分为控制器、运算器、存储器、输入设备和输出设备5个部分 *控制器:控制器是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,并根据具体要求进行控制、调度程序、数据、地址,协调计 算机各个部分工作,协调计算机各部分工作及内存、IO设备等的访问 *运算器:运算器是对数据进行各种算数运算和逻辑运算也就是对数据…

    Linux干货 2018-02-25