Shell 脚本

685 阅读2分钟

1.shell介绍

通常所说的shell就是shell脚本,它是一门脚本语言,弱类型

2.shell规范

第一行内容为#!/bin/bash
#注释
是以.sh结尾的文件

3.shell语法

    
	变量
		定义变量:变量名=变量值
		等号两边不能有空格
		变量名不能为数字开头、字母、数字、下划线组成
		变量值如果有空格,需要加引号
		特殊变量定义:双引号、单引号、反单引号
				"" :输出变量对应的值
				'':原样输出
				``:定义命令变量时需要使用``
		命名规范
		输出变量:echo $变量名
		变量释放:unset 变量名
		输入操作:
			read 变量名 变量名 变量名----->变量名之间用空格隔开
			read -p “提示信息” 变量名

	向文件传递参数:
		$1--->传递第一个参数
		$2---->....
		$3--->....
		$n---->......
		$0:显示的是文件名称
		$@:显示所有的参数
		$#:显示的参数的个数

	重定向:将内容保存到文件中
		正确命令: 用数字1表示,命令 1>文件名  ,命令 1>>文件名( >覆盖,>>追加)
		错误命令:用数字2表示,命令 2>文件名  ,命令 2>>文件名(>覆盖,>>追加)
	程序的结构:
		分支结构:
			if...else分支(注意:if和[之间有空格、条件和中括号之间有空格、条件和条件之间有空格,
			              条件中存在变量,变量名两边使用双引号):
				逻辑运算符:-a -o !
				比较运算符:-ge -gt -lt -le -eq -ne
				测试文件的状态:test 参数 文件名
				字符串判断:== ,!=
				文件判断:-d  -e -f  -w -r -x .....
			if...elif...else分支
			case分支:
				注意:
					1.case这一行的最后为in
					2.;;表示语句的结束
					3. *:表示默认
					4.esac:表示case语句结束
					5.值:可以是字符串、数字、还可是区间范围【0-9】之间
		循环结构
			for循环
				格式:for 变量名 in 列表
				      do
					语句
				      done
				命令:seq start size max---->分别表示开始点、步长、结束点
				
	
	函数
				定义:函数名(){}
				调用:函数名 ----》必须先定义再调用
				函数传参:用$n来接收传递的数据
				函数的返回值:默认都有一个默认的返回值,正确(无错误命令)的函数---->返回值默认为0,错误的命令--->返回值默认为1,查看函数的返回值:$?

		自动化部署实战:oracle的部署过程
			涉及知识点:
				查看文件中的前n条数据:head -n
				在文件中查看内容:grep "内容" 文件名
				剪取文件中的内容:cut
					cut:
						按照字节进行剪取---->空格:1个字节,字母、数字:1个字节,汉字:3个字节-----> 参数 : -b
						按照字符剪取----->空格、数字、字母、汉字:1个字符---->参数: -c
						按照域剪取----->  -d:表示使用的分隔符, -f:要剪取的第几个域
					sed -i "行号a内容" 文件名
					sed -i "行号i内容" 文件名
			部署:
				通过函数之间的相互调用实现
				(先脚本文件时,先流程图,再脚本)