shell脚本 “expr” 用法总结

expr 命令
作用:Shell变量的算术运算:
1 expr命令:对整数型变量进行算术运算
语法: expr  表达式    #注意 运算符之间要有空格

[root@hpc test]# expr 3 + 5
8
[root@hpc test]# var1=8
[root@hpc test]# var2=2
[root@hpc test]# exp
expand       exportfs     expresskeys 
export       expr        
[root@hpc test]# expr $var1 - 5
3
[root@hpc test]# expr $var1 / $var2
4
[root@hpc test]# expr $var1 * $var2
expr: syntax error
[root@hpc test]# expr $var1 \* $var2
16

2 expr 程序的例子
[root@hpc test]# cat expr.sh 
#! /bin/sh 
 a=10
 b=20
 c=30
 value1=`expr $a + $b + $c`
 echo "The value of value1 is $value1"
 value2=`expr $c / $b`
 echo "The value of value2 is $value2"
 value3=`expr $c \* $b`    #整除
 echo "The value of value3 is $value3"
 value4=`expr $a + $c / $b`
 echo "The value of value4 is $value4"

测试:
[root@hpc test]# ./expr.sh
The value of value1 is 60
The value of value2 is 1
The value of value3 is 600
The value of value4 is 11

3 复杂的运算
[root@hpc test]# var4=8
[root@hpc test]# expr `expr 5 + 11` / $var4
2

【例】
[root@hpc test]# var1=8
[root@hpc test]# var2=2
[root@hpc test]# var4=`expr $var1 / $var2`
[root@hpc test]# echo $var4
4

【例】 expr查找格式的应用
[root@hpc shell]# expr "test.pub" : ".*.pub"&& echo 1 || echo 0 
8                       # 8 为test.pub
1                       #左边为真则打印1
[root@hpc shell]# expr "test.pu1b" : ".*.pub"&& echo 1 || echo 0
0
0                       #左边为假则打印0
 
【例】用expr判断是否为整数
[root@hpc shell]# cat judge_int.sh
read -p "input int: " a
expr $a + 0 &>/dev/null                      #将所有执行信息重定向到null中
[ $? -eq 0 ] && echo "int" || echo "input erro"#根据expr执行的返回值来判断是否为整数

 

转自:http://xuegodlinux.blog.51cto.com/10844319/1709989

你可能感兴趣的:(expr)