shell是操作linux的桥梁

创建:
	后缀为.sh的文件
编写:
	头部注释为#!/bin/sh或者#!/bin/bash(注释可写可不写,建议写上)
运行:
	1.通过sh命令执行
		例如:sh helloworld.sh
	2.通过bash命令执行
		例如:bash helloworld.sh
	3.通过把文件修改为可执行的文件然后通过./文件命令.sh来执行	
		例如:./helloworld.sh(必须在当前目录下)

变量(动态数据类型,没有数据类型的限制,并且必须初始化)

定义和初始化
	格式
		变量名称=值
	例如:
		x=10 "abc edefg"
	注意:
		等号两边不能有空格
使用:通过$区分变量还是一句话
	格式1:
		$变量
	格式2:
		${变量}
	注意:
		格式1,会把$后所有相连内容看做一个变量
		格式2,${}表示值引用{}之中的内容分,对相连的内容做了一个区分 

$0...$n:表示接收外部参数(执行脚本时,传递的参数)

格式:
	$下标
注意:
	$0永远表示脚本名称(所以脚本名称不算数,$0也不算第一个参数)	
	下标大于一位数只能使用${}获取参数,因为$下标只把第一位数据看做下标
	$*获取所有参数
	$#获取所有参数个数		

引号:

单引号:安原字符串输出
双引号:可以引用变量,拥有特殊含义的内容
拼接:连续获取变量
注意:
	如果有多个引号,连续的形成一对
	引号中使用其他引号,其他引号做字符串使用

字符串

获取长度
	格式:
		${#变量}
截取:
	格式:
		${变量:开始位置:长度}
	注意:
		${str::5}:从0获取5个
		${str:0}:从0获取到末尾
替换单个
	格式:
		${变量/旧/新}
	注意:从左向右替换第一个
替换所有
	格式:
		${变量//旧/新}
注意:替换不会再原字符上进行修改,想要修改原字符串只能从新赋值
删除
	从头开始删除
		${变量#表达式}:匹配第一个删除
		${变量##表达式}:匹配最后一个删除
	从尾开始删除
		${变量%表达式}:匹配第一个删除
		${变量%%表达式}:匹配最后一个删除
	注意:从未开始删除,表达式还是从左向右去写
		删除不会再原字符上进行修改,想要修改原字符串只能从新赋值		

运算符

算术运算符
	bash不支持简单的数学运算,可以通过命令实现expr
	格式1:
		`expr 值 + 值`
		注意:符号两边需要加上空格
	格式2:
		$[值+值]
比较运算符: > < >= <=....
	格式:
		$[值符号值](符号两边空格加不加无所谓)
	注意:比较的结果用1(true)和0(false)表示
逻辑运算符: &/and |/or !/not
	例如:
		#判断2>1结果
		echo $[2 > 1]
		#反转2>1结果
		echo $[!$[2>1]]
		#  反转后面的结果2>1 and 2>3  false0
		echo $[!$[$[2>1]&$[2>3]]] 注意:用与或连接的时候外面的中括号里面的$和中括号可以不写
		echo $[2>1 & 2<1]
posted on 2021-09-03 20:04  学海无涯,书山有路  阅读(35)  评论(0)    收藏  举报