shell 学习(1) 执行,管道,重定向,逻辑分隔,变量,引号,运算

来源:互联网 发布:电脑网络连接不上 编辑:程序博客网 时间:2024/06/13 15:17

1. 执行 shell 脚本

  • 方法一: chmod +x uad.sh# 需要含有 x 权限
  • ./uad.sh
  • // 不需要考虑 x 权限
  • 方法二:sh uad.sh#用sh解释器解析
  • 方法三: source uad.sh#用当前默认解释器解析,后两者不需要加课执行权限

2. 管道

  • 格式:命令1| 命令2
  • 例如:find . -name "*" | wc -l

3. 重定向

  • 重定向输入:<从指定文件读取数据
  • 重定向输出:>, >>输入结果覆盖,追加到指定的文件
  • 标准错误输出:2>, 2>>
  • 混合输出:&>, &>>标准输出和错误信息覆盖,追加
4. 逻辑分隔
  • 逻辑或: 命令1||命令2(只要一个执行)
  • 逻辑连接符: 命令1;命令2(依次执行前后的命令)
5. 变量
  • 引用变量:$变量名,${变量名} (避免变量连接起来)
  • 变量:
  •     系统赋值:USER, LONGNAME, HOME, SHELL
  •     用户操作: PATH, LANG, CLASSPATH...
  •     env: 查看环境变量
  • 其他特殊变量:
  •     $?: 前一条命令的状态值,0为正常,非0为异常
  •     $0: 脚本自身的程序名
  •     $1-$9: 第1到第9个位置参数
  •     $*: 命令行的所有位置参数的内容
  •     $#: 命令行的位置参数个数
6. 引号
  • 单引号:禁止引用,转义
  • 反撇号`(键盘上数字1前面的那个符号)或$():以命令输出进行替换
7 整数运算
  •     格式: 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
0 0
原创粉丝点击