目录
一、基础知识
二、变量
1、定义变量
2、使用变量
3、只读变量
4、删除变量
三、字符串和数组
1、字符串
①单引号和双引号的区别
②#
③切片
2、数组
四、注释
1、单行注释
2、多行注释
一、基础知识
Linux的Shell有很多种,这里讨论的是Bash。
假设有Shell脚本名为helloWorld.sh,执行这个脚本(前提是脚本具有可执行权限)可以通过命令
①./helloWorld.sh,在helloWorld.sh所在目录下执行此命令即可运行脚本。
在这种情况下:需要在脚本开头写上“#! /bin/bash”,这样系统才知道用什么解释器执行
②/bin/bash helloWorld.sh,这种情况下不需要在脚本开头写上“#! /bin/bash”
这是一个shell脚本的例子
其中echo命令用于打印一个字符串。
二、变量
1、定义变量
shell中的变量定义时和大多数编程语言的变量规则一致:如由字母数字下划线组成且不以数字开头,不能与关键字重合等。
不同的是,在赋值符号‘=’左右两侧不应该使用空格,否则可能导致错误。
2、使用变量
在变量前面加上$即可使用变量,可以在变量外面加上{},以帮助解释器确定变量边界
在这个例子中,如果使用第二个变量skill时没有加{},解释器会把skillScript当成变量名,这会导致错误。
3、只读变量
使用readonly可以设置变量为只读类型,之后无法修改其内容
例如readonly name
4、删除变量
使用unset可以删除变量,之后不能再次使用。
例如unset name,注意无法删除只读变量
三、字符串和数组
1、字符串
①单引号和双引号的区别
通过单引号或双引号包含的内容被视为字符串,区别在于:单引号不识别变量,双引号识别变量。
②#
通过#可以获取字符串长度,使用方法为echo ${#str}
③切片
echo ${str:6:5},第一个数字6代表开始位置索引(第一个是0),第二个数字5代表切片长度
2、数组
bash仅支持一维数组,通过下标访问数组元素,下标从0开始。使用@获取全部元素。
# 定义数组
[root@VirTrxcx test]# clazz=("ds" "co" "os" "cn")[root@VirTrxcx test]# echo ${clazz[2]}
os
[root@VirTrxcx test]# echo ${clazz[@]}
ds co os cn# 获取数组长度
[root@VirTrxcx test]# arrayLength=${#clazz[@]}
[root@VirTrxcx test]# echo $arrayLength
4
四、注释
1、单行注释
#
2、多行注释
echo 注释内容前:<<EOF这里是注释内容EOFecho 注释内容后
EOF可以换成其他内容,前后一致即可。