Table of Contents
1.符号变量的使用
编写脚本
执行
说明
1. 变量的定义与使用规则:
1)变量名首字符必须为字母,名字只能用字母、数字、下滑线,不要用bash关键字。非法的名字:8var、var-8
2)变量定义或赋值时,变量名与值之间用等号连接:变量名=值,等号两边不能有空格,值中有空格或特殊字符需要用双引号或单引号引起来。
3)使用 $变量名 或 ${变量名} 形式获取变量值
2.选项参数
-n :不要执行 script,仅查询语法的问题;
-v :再执行 script 前,先将 scripts 的内容输出到屏幕上;
-x:实现shell脚本逐条语句的跟踪。这样我们可以分步骤进行查看每步的输出结果
3. 变量定义中符号的使用
1)单引号 ' ' :单引号里面的所有字符都是普通字符。
2)双引号 " ":双引号会保留变量特性,用值替换。
3)反引号 ` `:位于Esc 键下方,用倒引号括起一个命令时,这个命令将会被执行,执行后的结果作为这个表达式的值。
单引号和双引号用于变量值出现空格时,比如 name=zhang san 这样执行就会出现问题,而必须用引号括起来,比如 name="zhang san"。
不过,引号有单引号和双引号之分,二者的主要区别在于,被单引号括起来的字符都是普通字符,就算特殊字符也不再有特殊含义;而被双引号括起来的字符中,"$"、"\"和反引号是拥有特殊含义的,"$"代表引用变量的值,而反引号代表引用命令。如果需要调用命令的输出,或把命令的输出赋予变量,则命令必须使用反引号包含,这条命令才会执行,反引号的作用和 $(命令) 是一样的,但是反引号非常容易和单引号搞混,所以推荐大家使用 $(命令) 的方式引用命令的输出。
所以我们的脚本还可以改成
#!/bin/bash # 输出时间 now=$(date) echo ${now} msg1="${now},天气不错,适合出去玩耍" echo ${msg1} msg2='${now},天气不错,适合出去玩耍' echo ${msg2}
2.位置变量使用
shell语法中,当调用shell脚本的时候可以通过脚本后面的位置进行参数传递,然后通过各种不同的位置变量接收即可;
3.数组使用
获取数组长度:用${#数组名[@或*]} 可以得到数组长度
${#arr[*]} 或 ${#arr[@]}
读取数组元素:
读取下标为1的元素:${arr[1]}
读取数组整个元素:${arr[*]}
给数组元素赋值:
arr[1]=1
删除数组元素:
删除后,数组长度改变
unset arr[1]
数组切片:
直接通过
${数组名[@或*]:起始位置:长度}
切片原先数组,返回是字符串,中间用“空格”分开。
如果加上”()”,将得到切片数组
4.运算符的使用
4.1 算术运算符
4.2 比较运算符
4.3 逻辑运算符
4.4 文件运算符