2015—01—26 Shell学习笔记 《变量的数值计算》(1)

计算字符串 变量长度的方法


echo ${#chars} (内部函数效率高)


echo $chars|wc -m


echo $(expr length "$chars")


man bash      /word    找一手资料,学习的方法




变量的数值计算


(())  let expr  bc $[]


1).(()) 用于执行简单的整数运算,
eg1.((a=1+2**3-4%3))  ** 幂    echo $a  8
     b=$((1+2**3-4%3))          echo $b  8
     echo  $((1+2**3-4%3))    8
     echo $((a+=1))     9   (前面a是8)
     echo &((3>2))     1
     echo $((3>8))  0
     echo $((100*(100+1)/2)) 5050



bc计算小数


eg1:
cat test.sh


#!/bin/sh
a=6   (赋值语句左右不能有空格,有空格时报错
b=2   (赋值语句左右不能有空格,有空格时报错


echo "a-b = $(($a-$b))"
echo "a+b = $(($a+$b))"
echo "a*b = $(($a*$b))"
echo "a/b = $(($a/$b))"
echo "a**b = $(($a**$b))"
echo "a%b = $(($a%$b))"


命令行传参


eg1.1:
cat test.sh 

#!/bin/sh


a=$1

b=$2


echo "a-b = $(($a-$b))"
echo "a+b = $(($a+$b))"
echo "a*b = $(($a*$b))"
echo "a/b = $(($a/$b))"
echo "a**b = $(($a**$b))"
echo "a%b = $(($a%$b))"


实现一个加、减、乘、除等功能的计算器


cat test.sh (实现整数四则运算)

#!/bin/sh

echo "$(($1$2$3))"


sh test.sh 1+9




Homework:完成一个简单的四则运算计算器功能




2).let命令 ( 效率低于(()) )
格式:let 赋值表达式


i=2
let i=i+8
echo $i
10

i=2
i=i+8
echo $i
i+8


3).expr 一般用于整数值,但也可以用于字符串,用来求表达式变量的值,同时expr也是一个手工命令计算器。
expr 2 + 2
expr 2 - 2

expr 2 \* 2 (expr 2 * 2 语法错误需要转义) 


注意:1.运算符左右都有空格,多个空格可以
      2.使用乘号时,必须使用反斜线屏蔽其特定含义。因为shell可能会无解星号的含义。
      
expr $[2+3]
expr $[2*3]
expr $[2/3]
expr $[2%3]

expr $[$a+$b]


判断文件或字符串的扩展名小案例:
if expr "$1" : ".*\.pub" : then
#匹配 *.pub格式的文件如果是则为真。
eg:expr "id_dsa.pub" : ".*\.pub"
    10
#匹配的话返回前面文件的字符个数,不匹配返回0


expr对整数的判断(连续判断,等待输入)
cat judge_int.sh
#/bin/sh
while true
do
    read -p "Pls input:" a
    expr $a + 0 >/dev/null 2>&1
    [ $? -eq 0 ] && echo int||echo chars
done


expr计算字符串的长度
chars=`seq -s" " 100`


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值