let命令的用法
格式:
let 赋值表达式
【注】let赋值表达式功能等同于:(赋值表达式)
例子:给自变量i加8
1
2
3
4
5
6
7
8
|
[root@XCN ~] # i=2
[root@XCN ~] # let i=i+8
[root@XCN ~] # echo $i
10 [root@XCN ~] # i=i+8 #去掉let定义
[root@XCN ~] # echo $i
i+8 #输出的结果
提示: let i=i+8等同于((i=i+8)),但后者效率更高
|
expr命令的用法:
expr命令一般用于整数值,但也可用于字符串,用来表达式变量的值,同时expr也是一个手工命令行计算器。
语法:expr expression
1
2
3
4
5
6
7
8
|
[root@XCN ~] # expr 2 + 2
4 [root@XCN ~] # expr 2 - 2
0 [root@XCN ~] # expr 2 * 2
expr : syntax error
[root@XCN ~] # expr 2 \* 2 #*号用/来转义
4 |
提示:
-
注意:运算符左右都有空格
-
使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解星号的含义
增量计数:
expr在循环中可用于增量计算。首先,循环初始化为0,然后循环值加1,反引号的用法为命令替代,最基本的一种是从(expr)命令接受输出并将之放入循环变量。
例:给自变量i加1
1
2
3
4
|
[root@XCN ~] # i=0
[root@XCN ~] # i=`expr $i + 1`
[root@XCN ~] # echo $i
1 |
expr$[$a+$b]表达式形式,其中$a$b可为整数值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@XCN ~] # expr $[2+3]
5 [root@XCN ~] # expr $[2*3]
6 [root@XCN ~] # expr $[2**3]
8 [root@XCN ~] # expr $[2/3]
0 [root@XCN ~] # expr $[2%3]
2 [root@XCN ~] # a=5
[root@XCN ~] # b=6
[root@XCN ~] # expr $[$a+$b]
11 #expr将其后的串解释为表达式并计算其值,运算符前后需有空格 |
expr 特殊用法:
expr判断扩展名脚本
1
2
3
4
5
6
7
8
9
10
|
#!/bin/bash if expr "$1" : ".*\.pub" &> /dev/null #判断传递参数扩展名是否为pub
then echo "you are using $1"
else echo "pls use *.pub file"
fi #expr id_dsa.pub:`.*\.pub`,匹配*.pub格式的文件如果是则为真。离:
|
expr判断是非整数
#!/bin/bash
1
2
3
4
5
6
7
|
expr 1 + $1 &> /dev/null
if [ $? - eq 0 ]
then echo "zhengshu"
else echo "feizhengshu"
fi |
本文转自 baishuchao 51CTO博客,原文链接:http://blog.51cto.com/baishuchao/1941056