P23 回顾shell基础知识
shell执行多条命令
- 一行内,分号分割多条命令。比如cd /tmp ;echo hello ;cd - 其中cd -为回到此行命令开始前的目录
- 多行
echo和转义字符
- 双引号里输出$n等特殊字符时,实用\转义,来原样输出字符
- 单引号中字符不进行替换,可实现同样功能
${} $() 反引号 ()区别
- ${} 同 $变量名 取变量值
- $() 当前进程执行命令,且取得命令结果
- 反引号 当前进程执行命令,且取得命令结果
- () 开启子进程执行命令,执行完后退出子进程。适合命令耗时,异步执行
P24 数值计算
常见运算符及命令
(())用法
((表达式))用来计算数字表达式的值或进行逻辑判断,如果想获得结果,需要$取值。
- 下图第1行常用来给变量赋值,不输出结果。括号内变量定义和赋值
- 2变量定义在括号外,需要$取得计算结果赋值
- 3是逻辑判断
- 4取得变量值并输出,不用来给变量赋值。
$用来取得表达式计算或逻辑判断的结果。
- $((1+1)) 得到结果2,可用来赋值和echo输出。如果不用$不会输出结果,但是会计算。
- $((5>4))返回1
加减乘除脚本
- exit 1 退出脚本,并返回执行码1
- read -p "" name 提示信息,并赋值
- if [ -n " " ] 中括号里面前后有空格,语法要求。-n 判断字符串是否为空,空则false,不进去if体。 sed 's/[0-9]//g' 将字符串中的所有数字用空替换
P26 let命令
和(())一样,进行数值计算。效率没有(())高,因为系统级别实现。
let number=number+1 完全等于((number=number+1))