shell脚本的基础知识

一、什么是 shell

  • 1、 脚本中命令的解释器
    电脑语言分为描述性语言和解释性语言
    2、shell 脚本的意义
    记录命令执行的过程和执行逻辑,以便以后重复执行
    脚本可以批量处理主机
    脚本可以定时处理主机
    3、创建 shell 脚本
    #!/bin/bash 叫做幻数(指定解释器),在脚本运行的时候会优先执行;此处并不是注释,是vim子配置文件中所写的程序运行的环境。

二、创建 shell 脚本

  • 对于脚本的编写,除了需要调用的内容之外,还应当对于脚本信息有一个简单的说明;
    可以在写脚本时自动加上对脚本的说明;
    编辑子配置文件 ~./vimrc,
    call:调用 ,append:添加, 0:第一行 1:第二行, endfunc :结束;
    编辑test.sh文件,进入后按F4就会调用WESTOS函数,即可自动添加所设置的脚本信息;
    shell脚本的基础知识_第1张图片
    “将该语句注释;
    设定当新建立的文件,只要以.sh 或 .script结尾,都去调用WESTOS函数
    shell脚本的基础知识_第2张图片
    对编写脚本时的缩进格式进行设定:
    ts=2: 一个tab表示两个空格,ai: 自动缩进,et: 把tab 转换为空格,sw =2:缩进长度为2个空格;
    此时当编辑新文件lee时,可以看到脚本设定的效果
    shell脚本的基础知识_第3张图片
    继续编辑配置文件 ~/.vimrc,再增加几条对脚本的说明
    shell脚本的基础知识_第4张图片
    设定成功,编辑westos.sh 文件可以看到效果
    shell脚本的基础知识_第5张图片

三、执行shell脚本

  • 当脚本没有执行权限时;
    (1)手动在环境中开启指定解释器:sh westos.sh
    shell脚本的基础知识_第6张图片
    (2)直接在当前环境中运行shell中的指令不开启新的shell
    source script.sh
    . script.sh
    shell脚本的基础知识_第7张图片
  • 当脚本有执行权限时;
    可以使用绝对路径的方式运行脚本。(开启脚本中指定的shell并使用此shell环境运行脚本中的指令)
    . 表示当前目录
    shell脚本的基础知识_第8张图片
  • 三种运行脚本方式的区别;
    编辑linux.sh文件,写入一个指令cat
    shell脚本的基础知识_第9张图片
    ps f :显示进程信息,可以看到sh运行脚本的方式,会在当前shell中重新开启一个子shell
    shell脚本的基础知识_第10张图片
    fg:将进程调入前台并结束进程后,用 . 的方式运行脚本,不会在当前shell中重新开启一个子shell
    shell脚本的基础知识_第11张图片
    用 source 的方式运行脚本,不会在当前shell中重新开启一个子shell
    shell脚本的基础知识_第12张图片
    用 绝对路径 的方式运行脚本,也会在当前shell中重新开启一个子shell ,综上,sh 和绝对路径的方式,都会开启子shell
    shell脚本的基础知识_第13张图片

四、脚本的调试

  • 编辑脚本内容,将cal 改为cat ,此时由于没有指定输出,故运行时会卡住
    shell脚本的基础知识_第14张图片
    sh -x /mnt/westos.sh
    加号 :运行指令
    不带+ :命令运行的输出,可以看到cat指令没有输出
    shell脚本的基础知识_第15张图片
  • 脚本练习
    1、
    host_messages.sh 显示当前主机的名称,ip登陆当前主机的用户
    hostname: xxxxx
    ipaddress: xxxx.xxxx.xxx.xxx
    username: root
  • 使用以下命令可以查看相关信息
    shell脚本的基础知识_第16张图片
    shell脚本的基础知识_第17张图片
    env查看内建变量
    shell脚本的基础知识_第18张图片
    脚本内容以及运行结果如图
    shell脚本的基础知识_第19张图片
    也可以使用一条命令编写脚本
    shell脚本的基础知识_第20张图片
    2、clear_log.sh 执行次脚本后可以清空日志
  • 脚本内容及运行结果如图:
    注意:只有root用户才能清空日志,$0表示脚本本身
    shell脚本的基础知识_第21张图片
    此时脚本内容已被清空
    在这里插入图片描述
    测试切换到we用户
    在这里插入图片描述

你可能感兴趣的:(shell脚本的基础知识)