Shell编程规范基础

目录

前言

一、Shell脚本概述

什么是Shell

Shell脚本应用场景

二、规范编写脚本

执行脚本文件

编写脚本构成

三、重定向与管道操作

管道操作

交互式硬件设备

 重定向操作

四、脚本变量

变量作用

变量的类型 

自定义变量

read命令 交互式定义变量

整数的变量运算

总结


前言

 随着Linux服务器在企业中应用越来越多,服务器自动化管理也越来越重要。在Linux服务器自动化维护工作中,除计划任务设置外,Shell脚本应用也是非常重要一部分

一、Shell脚本概述

什么是Shell

      是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。

   将要执行的命令按顺序保存到一个文本文件

   给该文件可执行权限

   可结合各种Shell控制语句已完成更复杂的操作

Shell脚本应用场景

   重复性操作

   交互性任务

   批量事务处理

   服务运行状态监控

   定时任务执行。。。等等

二、规范编写脚本

执行脚本文件

方法一:脚本文件路径绝(绝对路径与相对路径)

[root@192 ~]# ./fisn.sh       (必须有者执行权限)

 方法二:sh脚本文件路径

[root@192 ~]# sh./fisn.sh

方法三:source脚本文件路径

 [root@192 ~]# source.fisn.sh

编写脚本构成

vim 1.sh                          #使用vim编辑器编写,所有脚本格式为sh
#!/bin/bash                       #脚本解释器写脚本必须加
cd /boot/                         
echo "当前目录位于"
pwd
echo "其中以vml开头的文件包括"
ls -lh vml*
                     

 执行脚本

Shell编程规范基础

 上面脚本文件中,包括三条命令,cd/boot/、pwd、ls -lh vml*。执行脚本文件后输出结果与单独执行这个三条命令是相同的,实现了自动化过程。

三、重定向与管道操作

管道操作

将管道符号“|”左侧的命令输出的结果,作为右侧命令的输入

例:[root@192 ~]# ps -aux | wc -l
       203

交互式硬件设备

标准输入:从该设备接受用户输入数据

标准输入:从该设备向用户输出数据

标准错误:通过该设备报告执行出错信息

类型 设备文件 文件描述编号 默认设备
标准输入 /dev/stdin 0 键盘
标准输出 /dev/stdout 1 显示器
标准错误输出 /dev/dtderr 2 显示器

 重定向操作

类型 操作符 用途
重定向输入 < 从指定的文件读取数据,而不是从键盘输入
重定向输出 > 将输出结果保存到指定的文件(覆盖原有的内容)
>> 将输出结果追加到指定的文件尾部
标准错误输出 2> 将错误信息保存到指定的文件(覆盖原有的内容)
2>> 将错误信息追加到指定的文件中
混合输出 &> 将标准输出、标准错误的内容保存到同一个文件中
2>&1 将标准错误输出重定向到标准输出

 例:[root@192 ~]# echo 123456 > 1.txt         将123456输入到1.txt文件中
        [root@192 ~]# cat 1.txt
        123456


四、脚本变量

变量作用

用来存放系统和用户需要使用的特定参数

   变量名:使用固定名称,有系统预设或用户定义

   变量值:能够根据用户设置、系统环境变化二变化

变量的类型 

自定义变量:由用户自己定义、修改和使用

特殊变量:环境变量,只读变量,位置变量,预定义变量

例:[root@192 ~]# A=123        #定义变量
       [root@192 ~]# echo $A      #查看变量
                              123

自定义变量

    赋值时使用引号

           双引号:允许通过$符号引用其他变量值

           单引号:禁止引用其他变量值,$视为普通字符

           反撇号:命令替换,提取命令执行后的输出结果

read命令 交互式定义变量

-p 提示用户信息
-n 定义字符数
-s 不显示用户输入内容,产用于输入密码
-t 定义超时间,超过多长时间输入退出

例:[root@192 ~]# read -p "请输入你的姓名 :" name
       请输入你的姓名 :zhang
       [root@192 ~]# echo $name
       zhang

整数的变量运算

expr  变量1  运算符  变量2 [运算符  变量3]

常用运算符

  加法运算:+

  减法运算:-

  乘法运算:\*

  除法运算:/

  求模(取余)运算:%

例:[root@192 ~]# x=12
       [root@192 ~]# y=13
       [root@192 ~]# expr $x + $y
       25

总结

Shell脚本千变万化的上面只是基础,同样的命令表达有各种写法,想要Shell脚本写的熟练还需继续学习多写脚本灵活运用。

 

上一篇:day17 Django的ManyToManyField(多对多)的使用以及through的作用


下一篇:21天好习惯 第一期-Day17