3.shell的数学运算、文件描述符和重定向

  • 基本的算术操作可用let、(())、[ ]进行
  • 高级操作常用expr、bc


      let
1.使用let时,变量名之前不要$
     no1 = 3   no2 = 4   , let  result=no1+no2   echo  $result
2.let的自增、自减形式
     let  no1++ 、 let no1--

     [ ]
1.[ ] 中也可以使用$前缀
    result=$[ $no1 + 3 ]

    (( ))
1. 使用 (())时,变量名之前需要加上$
    result=$(( no1 + 4 ))

    expr
1.expr同样可以进行基本运算操作
   result=`expr 4 + 5`     、  result=$(expr $no1 +7 )
以上只能用于整数的运算,而不支持浮点数

    bc
1.可以借助它执行浮点数并应用一些高级函数
     echo “ 4 * 0.34”  | bc     、   no = 20  result=`echo  "$no * 1.5"  |  bc `    echo $result

技巧1   设定小数精度
参数scale = num   ----->  echo  “scale=2;3/8”  | bc    -----0.37

技巧2   进制转换  (十进制转二进制,再回转)  obase= num && ibase= num
num = 100                                                   num = 1100100
echo  “obase= 2;$num”  | bc                        echo  "obase=10;ibase=2;$num"  | bc

 技巧3    平方以及平方根计算
echo  “sqrt(100)”   |  bc  #Square root
echo   "10^10"  |  bc  #Square
 


  • 常见的文件描述符是stdin(标准输入)、stdout(标准输出)、stderr(标准错误)
  • 文件描述符0、1、2是系统预留。0----stdin,1---stdout,2---stderr

        tee
1.可以在终端打印输出,并将内容同时重定向到一个文件中
     command  |  tee   file
2.tee只能从stdin中读取,即重定向入文件内并没有stderr的错误信息
3.默认情况下,tee会将文件覆盖(-a 选项可以用来追加)
     command  | tee  -a  file

技巧1   对脚本内部文本块重定向
例:向log文件中写入头部信息
#!/bin/bash                           cat<<EOF>log.txt和EOF之间的内容,被当作stdin输入文件
cat<<EOF>log.txt
It is  a log file
EOF

技巧2   自定义文件描述符   (exec命令创建自己的文件描述符)
echo   He is a  joker  > joker.txt       如果再次读取,需要exec重新分配文件描述符
exec  4< joker.txt
cat <&4 ------He is a  joker
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值