1. 执行 shell 脚本
- 方法一: chmod +x uad.sh# 需要含有 x 权限
- ./uad.sh
- // 不需要考虑 x 权限
- 方法二:sh uad.sh#用sh解释器解析
- 方法三: source uad.sh#用当前默认解释器解析,后两者不需要加课执行权限
- 格式:命令1| 命令2
- 例如:find . -name "*" | wc -l
3. 重定向
- 重定向输入:<从指定文件读取数据
- 重定向输出:>, >> 输入结果覆盖,追加到指定的文件
- 标准错误输出:2>, 2>>
- 混合输出:&>, &>> 标准输出和错误信息覆盖,追加
- 逻辑或: 命令1||命令2(只要一个执行)
- 逻辑连接符: 命令1;命令2(依次执行前后的命令)
- 引用变量:$变量名,${变量名} (避免变量连接起来)
- 变量:
- 系统赋值:USER, LONGNAME, HOME, SHELL
- 用户操作: PATH, LANG, CLASSPATH...
- env: 查看环境变量
- 其他特殊变量:
- $?: 前一条命令的状态值,0为正常,非0为异常
- $0: 脚本自身的程序名
- $1-$9: 第1到第9个位置参数
- $*: 命令行的所有位置参数的内容
- $#: 命令行的位置参数个数
- 单引号:禁止引用,转义
- 反撇号`(键盘上数字1前面的那个符号)或$():以命令输出进行替换
- 格式: expr 数值1 操作符 数值2
- 例如: expr 45 \* 2145*21
- x=45; y=46; expr $x - $y
- 使用 $[] 表达式,算数替换
- 格式:$[数值1 操作符 数值2]
- 例如:x=45; y=46; echo $[x-y];
- 变量的递增处理
- 格式: let 变量名++, let 变量名--
- let x+=2;
- 使用随机数
- RANDOM 变量 # 范围为[0, 32767]
- echo $[RANDOM%100]
- 生成数字序列
- 格式:seq 首数 末尾数
- seq 首数 增量 末尾数
- seq 3 5-> 3 4 5
- seq 3 2 10 -> 3 5 7 9
- 将表达式给 bc 命令处理
- echo "45.67-21.05" | bc# 结果:24.62
- echo "scale=4;10/3" | bc# 结果:3.3333 #scale=n约束小数位
- 逻辑与: 命令1&&命令2(同时执行成功)
- 定义及赋值:变量名=变量值
- 双引号:允许引用,\转义
- 例如:echo `who` = echo $(who) = who #命令
- 使用expr命令,计算表达式
- 例如:seq 3-> 1 2 3