shell脚本概述
将要执行的命令按顺序保存到一个文本文件。
给该文件可执行的权限
可以结合各种shell控制语句以完成更复杂的操作。
shell脚本应用场景
重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行
面向过程的语言:C,shell
面向对象的语言:java,python,go语言
shell的作用
shell介于系统内核与用户之间,负责解释命令行
用户----->shell------->Linux内核------->系统硬件
什么是shell脚本,以及构成
-
就是将命令按顺序列出,最后自动执行
-
执行需要权限,也可以直接使用绝对路径
-
脚本其实不复杂,通用脚本环境改变后依然可以使用的脚本构成
1.脚本中申明(解释器)︰第一行开头#!/bin/bash 表示此行以下的代码语句是通过/bin/bash程序来解释执行。#! /binfbash为默认的解释器还有其他类型的解释器,#! /bin/python ,#! /bin/expect
2.注释信息: 以#开头的语句表示为注释信息
3.可执行语句:比如echo命令用于输出之间的字符串
shell脚本中变量的概念
shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应变化,通过使用变量,shell程序能够提供更加灵活的功能,适应性更强
变量基础
常见的shell变量类型:
自定义变量:由用户自己定义,修改和使用
变量名=变量值
[root@zzz ~]# a=b
[root@zzz ~]# echo $a
b
环境变量:由系统维护,用于设置工作环境
##使用env命令可以查看当前工作环境下的环境变量
[root@zzz ~]# env
XDG_SESSION_ID=38
HOSTNAME=zzz
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=200
SSH_CLIENT=192.168.232.1 56989 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/1
USER=root
只读变量:只可以读取不可以更改
位置变量:用过命令行给脚本传递参数
预定义变量:Bash中内置的一类变量,不能修改
系统内置变量:PATH UD HOSTNAME USER
命名要求:
-
区分大小写
-
不能使用程序中的保留字和内置变量 比如:if for hostname
-
只能使用数字、字母及下划线,且不能以数字开头,注意:不支持短横线"-",和主机名相反
-
不要使用内置的变量,使用英文尽量使用词义通俗易懂,PATH
-
大驼峰StudentFirstName
-
小驼峰studentFirstName
-
下划线: student