SHELL 学历笔记

Shell
	变量
		变量名区分大写小,规范大写,$变量名获取
			$变量名
			${变量名}
		变量名不能以数字开头
		等号两边不能有空格
		命令复制给变量: ``  ,   $()
		交互式变量赋值:read  -n -p -t 变量名
		declare 给变量赋予属性(只读,整形, x  环境变量)
		本地变量,全局变量,环境变量,系统变量
		四则运算
			$(())
			expr
			let
			$[]
		dirname:当前脚本目录
basename:文件名
	流程控制
		条件控制
			[ 表达式 ] 
			test 表达式
			[[ 表达式 ]]  :  当判断字符串是否为空时,用此方式
			整数判断
				-eq
				-ne
				-ge
				-le
				-gt
		多重判断
			逻辑与: a  /  && 
			逻辑或: o / || 
		if
			if [ condition ];then 
       .....
fi
			if...elif...else
		for
			循环方式
				列表循环 
					a b c 
					{1.10} {1,2,10}
					seq 10/seq 2 10/seq 1 2 10
				不带列表循环
					for x  (x 为参数个数)
				类C 风格循环
					for (( expr1,expr2,expr3 ))
     do 
     command
done
					for((i=1;i<5;i++))
		while
		until
		case
	数组
		定义
			普通数组:数字作为索引下标
			关联数组:字符作为索引下标(declare -A 数组名)
		初始化
			数组名[index]=value
数组名=(value1 value2 value3)
			关联数组一次初始化多个值:declare -A sy1=([s]=s1 [s s]=sy2 [y]=sy3)
		数组获取
			获取数据元素:${数据组名[index/*]}
			元素个数:${#数字名[*]}
			关联数组获取全部元素下标:echo ${!数组名[*]}
	sed
		命令行模式
			1. 所有命令再单引号里
		脚本模式
			sed -f 脚本.sh 
		e: 多项编辑
r:扩展正则
i: 修改源文件
	awk
		格式:awk 选项 '命令' 文件
		选线:
F : 定义分隔符,默认是空格
v:定义变量并赋值(使用变量不需要加$)
		内部变量
			$0
$1,$2,$3....
NF 当前列数
$NF 最后一列
FNR/NR 行号
FS:定义间隔符
OFS:定义输出间断分隔符,默认是空格
RS: 输入记录分隔符
		流程控制
			if
				{if(表达式){执行语句1;语句2} }
				{if(表达式){语句1;语句2;...} else {语句1;语句2;...}}
				awk '{for();}'
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号