shell脚本初学

1.基本概念

shell脚本是一门解释非编译、弱类型的脚本语言,意思是说shell是命令行解释器,它在执行时不需要编译,且shell中的变量不需要定义类型。

shell执行命令的方式有两种:

(1)交互式:用户输入一条命令,shell就解释执行一条;

(2)批处理:用户事先写一个Shell脚本,其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条的敲命令。

shell的开头是:#!/bin/bash;其中#!称为“shebang”,告诉系统这个脚本需要哪个解释器来执行

echo命令是向窗口输出文本

注:shell中用#进行注释,但#位于第一行开头表示该脚本使用后面指定的解释器/bin/bash解释执行。

2.shell脚本的两种执行方式

(1)作为可执行程序

shell脚本初学

(2)作为解释器参数

shell脚本初学

3.shell变量

shell是弱类型语言,不需要强调shell变量的类型,而且shell变量也不需要提前定义,需要直接使用即可。想要删除变量可用ubset。

shell脚本初学

readonly命名可以将变量定义为只读变量,只读变量的值不可被修改也不可以被unset删除

shell脚本初学

本地变量只在本bash中有效,环境变量对于所有程序(包含shell启动的程序)都可访问

shell脚本初学

4.条件测试

shell脚本中的测试用命令完成,根据退出码判断代码是否执行完并且结果正确,通常是0代表正确1代表不正确。常见的测试命令有test和[。

测试整数:-eq等于 -ne不等于  -lt小于 -gt大于 -le小于等于 -ge大于等于

shell脚本初学

字符串测试:==  !=  -z空串 -n不为空串

shell脚本初学

文件测试:-c字符设备  -b块设备  -f文件设备  -d目录设备

shell脚本初学

5.多条件测试

逻辑或: -o,两条件至少满足一个即为真 

shell脚本初学

逻辑与:-a,两条件同时成立才为真

shell脚本初学

if/then/elif/else/fi以及循环嵌套

shell脚本初学

&&:第一个条件成立再看第二个条件,否则不看后面的条件

||:第一个条件不成立则执行第二个条件;第一个条件成立则不执行第二个条件
shell脚本初学

case/esac

shell脚本初学