1.什么是Shell脚本
Shell脚本是利用 shell 的功能所写的一个程序 program,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。
Shell 脚本可以简单的被看成是批处理文件, 也可以被说成是一个程序语言,且这个程序语言由于都是利用 shell 与相关工具指令, 所以不需要编译即可执行,且拥有不错的除错 (debug) 工具,所以,shell可以帮助系统管理员快速的管理好主机。
2.Shell脚本特性
自动化常用命令
追踪与管理系统的重要工作
简单入侵检测功能
连续指令单一化
简易的数据处理
跨平台支持与学习历程较短
3.创建shell 脚本
第一步:使用文本编辑器(vim)来创建文本文件
第一行必须包括shell 声明序列:#!
#!/bin/bash (告诉系统执行的时候要调用什么解释器)
添加注释
注释以# 开头 (# 都是批注用途,加在#后面的数据都被当做批注文字)
第二步:运行脚本
给予执行权限,在命令行上指定脚本的绝对或相对路径
直接运行解释器,将脚本作为解释器程序的参数运行
例:计算/etc/passwd文件中的第10个用户和第20个用户的ID之和
复制代码
#!/bin/bash
#Filename:ID.sh
文件名:ID.sh
#Description:Test
描述:测试
#Author:Rookie
作者:菜鸟
#Program: This program shows “ID sum!” in your screen.
程序:这个程序显示“ID和!“在你的屏幕上
#Email:xxx@126.com
电子邮件:xxx@126.com
#Revision:3.1
修订号:3.1
#Date:2017-04-14
日期:2017-04-14
#Note:Test
#The 10th in the/etc/passwd file ID of the user
在/etc/passwd文件中第10个用户的ID
id1=KaTeX parse error: Expected 'EOF', got '#' at position 48: …| cut -d: -f3) #̲The 20th in the…(head -20 /etc/passwd | tail -1 | cut -d: -f3)
#Calculate a 10th of the/etc/passwd file users and 20th the sum of the user’s ID
计算/etc/passwd文件中的第10个用户和第20个用户的ID之和
sum=$((id1+id2))
echo ${sum}
复制代码
按 i 键进入输入模式进行编辑
编辑完成后按 ESC键,进入编辑模式后按 ;输入wq保存退出
[root@station29 scripts]# bash ID.sh
sum=180 执行结果 ID和为180
变量:命名的内存空间
数据存储方式:
字符:
数值:整型,浮点型
变量:变量类型
作用:
1 、数据存储格式
2 、参与的运算
3 、表示的数据范围
类型:
字符
数值:整型、浮点型
变量
强类型 :变量 不经过强制转换,它永远是这个数据类型,不
允许隐式的类型 转换。一般定义变量时必须指定类型、参与
运算必须符合类型要求;调用未声明变量会产生错误
如 java,c#
弱类型:语言的运行时会隐式做数据类型 转换。无须指定类
型,默认均为字符型;参与运算会自动进行隐式类型转换;
变量无须事先定义可直接调用
如:bash 不支持浮点数,php
变量命名法则:
1 、不能使程序中的保留字:例如if, for
2 、只能使用数字、字母及下划线,且不能以数字开头
3 、见名知 义
4 、统一命名 规则:驼峰命名法
bash 中变量的种类:
根据变量的生效范围等标准:
本地变量:生效范围为当前shell 进程;对当前shell 之外
的其它shell 进程,包括当前shell 的子shell 进程均无效
环境变量:生效范围为当前shell 进程及其子进程
局部变量:生效范围为当前shell 进程中某代码片断( 通常
指函数)
--------shell-----父shell ----------------
| |
|-----------bash 子shell-----|
子shell只会继承环境变量 并不会继承父shell中的变量
. 或者 source /etc/profile 只在当前的shell环境中执行,一般用来校对环境变量
位置变量:$1, $2, … 来表示,用于让脚本在脚本代码
中调用通