脚本的执行方法
sh script.sh | bash script.sh ##没有执行权限时
path/script.sh | ./script.sh ##绝对路径,当前目录下
source script.sh | . script.sh ##这种方式会使用source或.号来读如指定shell文件,并会把其他shell中的变量值或函数返回给父shell继续使用
在未加执行权限时,我们无法用第二种绝对路径的方法直接执行脚本,需要先给脚本加执行权限
其他两种方法在没有执行权限时都可直接使用
变量定义与赋值
变量赋值的几种方式如下:
1.直接赋值:a=hello ##当定义内容中含有空格时,无法正确解析
2.直接赋值:b=‘ westos’ ##单引号默认不解析其中的内容
3.直接赋值:c=“westos” ##没有特别要求
4.将命令的结果赋值给变量
练习:打包日志:
特殊变量
$0:获取脚本文件名,如果执行时包含路径,则输出脚本路径
$n(>0):表示脚本执行时跟在执行语句后的第n个变量
$#:所有的变量个数
4.$?:检测上一条命令执行结果的返回值,执行成功则为0,执行失败则非0
read命令
read命令可以用来接受用户输入的参数,用法如下:
变量的数值计算
1.expr命令用法如下:
expr $a + 10
expr $a \* 10 (只有乘法需要转义)
2.$[]和$(())表达式:
echo $[a+10]
echo $[a*10]
3.let命令(let命令在执行后会覆盖原来的值保存新的值)
let a+=10
let a-=10
4.小数计算:
echo 1.2 + 3.4 | bc
echo "scale=2;1.23+4.567" | bc 保留n位小数scale=n
练习:计算两个数的加减乘除
脚本如下:
运行结果如下: