shell脚本(一)

 本周是来马哥教育的第四周,本周重点是shell脚本的编写,本篇博客也是以shell脚本的简述为主。

一.shell脚本的概念及意义

    shell脚本是linux下的一种编程方式,百度百科给出这样的释义:脚本(shell script)是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。说白了,就是为了解决linux的实际问题,临时写的一个小程序来完成当前的工作,如果需要多次使用,还能保存下来循环使用。

二.脚本的规范

    脚本使用了shebang机制,即这样的格式:!#/bin/bash、!#/use/bin/python。需要简单的进行shell脚本的解释。下面举一个样例:
    #!/bin/bash
    # ——————————————
    # Filename: hello.sh
    # Revision: 1.1
    # Date: 2017/08/05
    # Author: Mr.Dong
    # Email: Dong@gmail.com
    # Website: www.magedu.com
    # Description: This is the first script
    # ——————————————
    echo “hello world”
    利用这些信息,可以很快知道这个脚本的用处,以便于工作的使用。
    在运行的时候可以使用下面两条命令进行脚本调试
    bash -n hello.sh 来查看脚本的语法错误
    bash -x hello.sh 可以查看脚本的执行步骤

三.变量

    1.本地变量
        本地变量只对当前shell有效,对子shell无效(SHLVL查看是几级shell)。
        变量赋值:name=’value’
        字符串赋值:name=”root”
        变量引用:name=”$USER”
        命令引用:name=COMMAND name=$(COMMAND)
        显示已定义的所有变量:set
        删除变量:unset name
    2.环境变量
        环境变量对当前SHELL及其子SHELL均有效。
        变量的声明和赋值命令: 
        export name=VALUE
        declare -x name=VALUE
        变量的引用:$name,${name}
        显示所有的环境变量命令:
        env printenv export declare -x
        bash自带环境变量:
        PATH SHELL USER UID HOME PWD SHLVL LANG MAIL HOSTNAME HISTSIZE
    3.只读变量
        声明只读变量:
        readonly name 
        declare -r name
        查看只读变量: readonly -p
    4.位置变量
        $1, $2, … :对应第1 、第2 等参数,shift [n] 换位置
        $0:  命令本身
        $:  传递给脚本的所有参数,全部参数合为一个字符串
        $@:  传递给脚本的所有参数,每个参数为独立字符串
        $#:  传递给脚本的参数的个数
        $@ $
  只在被双引号包起来的时候才会 有 差异
        set — 

四.算术运算与逻辑运算

    1.算术运算
      算数运算符:+ – * / %(取余) **(乘方)
      常用的运算:
        (1) let var= 算术表达式
        (2) var=$[ 算术表达式]
        (3) var=$(( 算术表达式))
        (4) var=$(expr arg1 arg2 arg3 …)
        (5) declare –i var =  数值
        (6) echo ‘ 算术表达式’ | bc
      产生随机数命令:echo $[$RANDOM%number]  0-number之间的随机数
      赋值运算:+= -= *= /= %=
      自增和自减:
      let var+=1
        let var++
      let var-=1
      let var–
    2.逻辑运算
      true=0 false=1
      与 1&&1=1 1&&0=0 0&&1=0 0&&0=0
      或 1||1=1 1||0=1 0||1=1 0||0=0
      非 !1=0 !0=1

五.test命令

    test命令是shell环境中测试条件表达式的实用工具。
    例如:test “$A” == “$B” && echo “Strings are equal”
    [ “$A” == “$B” ] && echo “Strings are equal”
    这两种表述表达同一种意思。
    [[  ]]表示支持正则表达式
    数值比较:         字符串比较:
     -gt 是否大于      >
     -ge 是否大于等于  >=
     -eq 是否等于      ==
     -ne 是否不等于    !=
     -lt 是否小于      <
     -le 是否小于等于  <=

本篇博客只是对本周的shell脚本的学习的总结,后面还有拔高部分的学习,未完待续~

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

(0)
Mr.DONGMr.DONG
上一篇 2017-08-05 11:23
下一篇 2017-08-05 14:21

相关推荐

  • 3.用户和组管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who root     tty1         2016-12-…

    Linux干货 2017-07-16
  • 提问的智慧

    译文 译文: 捷克语 丹麦语 爱沙尼 亚语 法语 德语 希伯来语 匈牙利语 意大利语 日语 波 兰语 俄语 西班牙语 瑞典语 土 耳其语. 如果你想复制、镜像、翻译或引用本文,请参阅我的 复制须知. 弃权申明 …

    Linux干货 2015-03-20
  • DNS实验

    本实验需的注意问题:      1、运营商的服务器需要更改根指向服务器地址      2、根服务器上的配置文件/etc/named.conf需要将"."根区域禁用;      3、更改区域数据库文件的属组为named;c…

    Linux干货 2016-12-12
  • N25-第1周博客作业

    计算机概述及命令 一、计算机原理及其组成功能 计算机作为一个整体,由软件和硬件两大部分组成:  (1)计算机硬件系统。        计算机的硬件系统结构有哈佛结构和冯·诺伊曼结构两种。 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内…

    Linux干货 2016-12-03
  • 20160802作业

    20160802作业 1、每日课堂笔记总结 2、预习 3、每日课堂pdf练习 4、在/data/testdir里创建的新文件自动属于g1组,组g2的成员如: alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 [root@Centos7 ~]# chmod…

    Linux干货 2016-08-04
  • Linux手动编译源代码文件

    一、简介     Linux系统上程序包安装的方式多种多样,一般来说可通过rpm包安装、yum在线安装等方式实现。但有时候为了实现某种功能,而这种功能在通常情况下又不是太常用或是因为其他原因,不能通过yum下载安装或在网上没有找到rpm包,只是找到了程序安装包的源代码的话,这种情况下我们就可以对源代码直接进行编译安装,以便解决这种临时需求…

    Linux干货 2015-09-26