shell的expr运算符的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell的expr运算符的使用相关的知识,希望对你有一定的参考价值。
使用expr注意:
运算符及用于计算的数字左右都至少有一个空格,否则报错
使用乘号的时候,必须用反斜线屏蔽其特定的含义
expr的企业级实战案例详解
由于函数库很少,所以expr是一个简单的用于判断一个字符串是否为整数的方法;原理就是expr做计算的时候变量或者字符串必须是整数的规则。把一个变量或者字符串和一个整数相加,如果$?返回的是0;这个变量就是整数。
例如:通过传参判断输出是否为整数:
#!/bin/bash s=`expr $1 + 4 2>&1` a=$? if [ $a -eq 0 ]; then echo "this is int" else echo "bad" fi
判断输入的数值不为空;
#!/bin/bash read -p "the first num:" num read -p "the two num:" num2 #num=4 #num2= if [ ! -n $num ] && [ ! -n $num2 ]; #-n:不为零是真,所以用!取反 then echo "this is a bab" exit 1 fi
扩展:
编程思路
第一关:判断参数的个数是不是为2,若不是,则给你提示终止运行
第二个:判断传入的参数是否为整数,若不是,则给我提示终止运行
第三关:做运行
#!/bin/bash read -p "the first num:" num read -p "the two num:" num2 #num=4 #num2= if [ ! $num ]; #-n:不为零是真,所以用!取反 或者用!判断,如果是空值,就执行下面的 then echo "this is a bab" exit 1 fi if [ ! $num2 ]; then echo "this is a babe" exit 2 fi expr $num + $num2 + 4 > /dev/null #有点问题 if [ $? -ne 0 ]; then echo "this must two arge" exit 3 fi echo "the is good" #接下来的计算就很容易了 ~
expr的特殊用法:判断文件扩展命名是否符合要求
#!/bin/bash if expr "$1" : ".*\.pub" >/dev/null then echo "using $1" else echo "using bad" fi
使用expr命令计算长度:
[email protected]:/home/xpg# char="i am oldboy" [email protected]:/home/xpg# expr length "$char" 11 [email protected]:/home/xpg# echo ${#char} 11 [email protected]:/home/xpg# echo $char | wc -L 11
请使用shell脚本,打印下面语句中字符串不大于6的单词:
I am oldboy linux welcome to our training
#!/bin/bash char="I am oldboy linux welcome to our training" for i in $char; do #echo $i if [ `echo ${#i}` -le 6 ] >/dev/null # if [ `expr length "$i"` -le 6 ] >/dev/null 也可以使用expr计算长度 then echo $i fi done
bc计算器:
[email protected]:/home/xpg# echo 8.8-5|bc 3.8 [email protected]:/home/xpg# echo "scale=2;355/133" |bc #scale=2保留两位小数 2.66 [email protected]:/home/xpg#
以上是关于shell的expr运算符的使用的主要内容,如果未能解决你的问题,请参考以下文章