shell编程--数值运算

来源:互联网 发布:10.1.1越狱抹掉数据 编辑:程序博客网 时间:2024/06/08 09:37

在 shell 中的四则运算必须使用 expr 这个指令来辅助。因为这是一个指令,所以如果要将结果指定给变量,必须使用 ` 包起来。请注意,在 + - * / 的二边都有空白,如果没有空白将产生错误

$ expr 5 -2 3 $ sum=`expr 5 + 10` $ echo $sum 15 $ sum=`expr $sum / 3` $ echo $sum 5

还有一个要特别注意的是乘号 * 在用 expr 运算时,不可只写 *。因为 * 有其它意义,所以要使用 \* 来代表。另外,也可以用 % 来求余数。

$ count=`expr 5 \* 3` $ echo $count $ echo `expr $count % 3` 5

我们再列出更多使用 expr 指令的方式,下列表中为可以放在指令 expr 之后的表达式。有的符号有特殊意义,必须以 \ 将它的特殊意义去除,例如 \*,否则必须用单引号将它括起来,如 '*':

类别语法说明条件判断expr1 \| expr2如果 expr1 不是零或 null 则传回 expr1,否则传回 expr2。expr1 \& expr2如果 expr1 及 expr2 都不为零或 null,则传回 expr1,否则传回 0。四则运算expr1 + expr2传回 expr1 加 expr2 后的值。expr1 - expr2传回 expr1 减 expr2 后的值。expr1\* expr2传回 expr1 乘 expr2 后的值。expr1 / expr2传回 expr1 除 expr2 后的值。expr1 % expr2传回 expr1 除 expr2 的余数。大小判断expr1 \> expr2如果 expr1 大于 expr2 则传回 1,否则传回 0。如果 expr1 及 expr2 都是数字,则是以数字大小判断,否则是以文字判断。以下皆同。expr1 \< expr2如果 expr1 小于 expr2 则传回 1,否则传回 0。expr1 = expr2如果 expr1 等于 expr2 则传回 1,否则传回 0。expr1 != expr2如果 expr1 不等于 expr2 则传回 1,否则传回 0。expr1 \>= expr2如果 expr1 大于或等于 expr2 则传回 1,否则传回 0。expr1 \<= expr2如果 expr1 小于或等于 expr2 则传回 1,否则传回 0。文字处理expr1 : expr2比较一固定字符串,即 regular expression。可以使用下列字符来辅助:

. 匹配一个字符。

$ 找字符串的结尾。

[list] 找符合 list 中的任何字符串。

* 找寻 0 个或一个以上在 * 之前的字。

\( \) 传回括号中所匹配的字符串。

原创粉丝点击