1、什么是Shell脚本?
shell就是指一种应用程序,这个应用程序提供了一个界面,用户通过这 个界面访问操作系统内核的服务
2、第一个Shell脚本
在某个目录下创建一个文件(Shell脚本通常以sh结尾)demo.sh
输入命令“vim demo.sh”进入编辑模式,(#!是一个约定的标记,它告诉系统这个脚本需要什么解释器 来执行,即使用哪一种 Shell、、echo 命令用于向窗口输出文本)
回到上一层目录,执行命令“chmod +x ./demo.sh” ----》./demo.sh---->输出内部的内容
3、Shell变量
Shell定义变量时,变量名不能加美元符号($),
变量定义规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
使用变量:
使用一个定义过的变量,只要在变量名前面加$即可
只读变量:
使用readonly命令可以将变量定义为只读变量,只读变量的值不能改变,报错,改不了
删除变量:
使用unset命令可以删除变量 。unset 命令不能删除只读变量。
4、Shell字符串
Shell中字符串可用双引号也可以用单引号
单引号:str='hello world'
双引号:str="hello world"
区别:单引号限制:
1、单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
2、单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串 拼接使用。
双引号优点:双引号里可以有变量、、、双引号里可以出现转义字符
5、Shell传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行 脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
sehll传递参数里面的特殊字符
$* 与 $@ 区别:
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传 递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
6、Shell数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小
与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用"空格"符号分割开,语 法格式如下:array_name=(value1 ... valuen)
定义数组:my_array=(val1 val2 。。 valn)
也可以使用下标定义数组:my_array[0]=val1 my_array[1]=val2
读取数组元素元素:${my_array[index]}
获取数组中的所有元素:${my_array[*]}或者${my_array[@]}
获取数组的长度:${#my_array[*]}或者${#my_array[@]}
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由0开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
my_array=(arr1 arr2 arr3 .... arrn)
7、Shell运算符
算数运算符:不是单引号,是Esc下的案件,2 + 2之间一定要有空格 val=不能有空格
关系运算符:关系运算符只支持数字,不支持字符串,除非字符串的值是数字
布尔运算符:
逻辑运算符:
字符串运算符:
8/8、Shell流程控制
if...else....
if condition
then
command1
command2
... commandN
else
command
fi
网友评论