一.定义变量:
1.a=hello ##直接定义
2.b=‘hello’ ##加单引号定义
3.c=“hello” ##加双引号定义
区别:’'单引号定义时,不会解析其中内容,原样输出;而""双引号和直接定义都会做解析;双引号还可以定义包含空格的字符,其他两个不行。故,没有特别要求时,字符串都加双引号,需要原样输出就加单引号
二.特殊变量:
$0 | 获取脚本文件名,如果执行时包含路径,则输出脚本路径 |
---|---|
$n(n>0) | 获取脚本的第n个参数 |
$# | 获取脚本后参数的总数 |
$* | 获取所有参数 |
$@ | 获取所有参数 |
$? | 获取上一条命令结果的返回值,正确则输出0,错误则输出非0 |
$$ | 获取当前shell进程号 |
1.$0:获取脚本文件名,如果执行时包含路径,则输出脚本路径
2.$n(n>0):获取脚本的第n个参数
3.$#:获取脚本后参数的总数
4.$?:获取上一条命令结果的返回值,正确则输出0,错误则输出非0
5.$$:获取当前shell进程号
三.read用法:
四.将命令的结果赋值给变量:
1. 将ls -l命令赋值给CMD
2. 对变量进行解析输出
<练习:打包日志格式为log_日期.tar.gz>
1.tar zcf log_$(date +%F).tar.gz /var/log/
五.变量的数值计算:
1. expr命令: ##此命令需要注意的就是乘法运算时需要转义,且执行后不会保留新的值
2. $[]或(())表达式: ##正常运算,不需转义
3.let命令 ##let命令在执行后会保存新的值
4.小数计算工具:bc
<scale=数字:意思是保留小数点后多少位>
<练习:写脚本用来计算两个数的加减乘除>
1.编写脚本,内容如下图
<-t:默认等待8秒后退出>
2.执行该脚本,输入两个整数,查看运算结果