右端的各位上补上0 值,每做一次按位左移就有var 乘2
var>>str # 右移运算符,把var 中所有的二进制位向右移动str 位,忽略最右移出的各位,
最左的各位上补0,每次做一次右移就有实现var 除以2
var&str # 与比较运算符,var 和str 对应位,对于每个二进制来说,如果二都为1,结果为1.
否则为0
var^str # 异或运算符,比较var 和str 对应位,对于二进制来说如果二者互补,结果为1,
否则为0
var|str # 或运算符,比较var 和str 的对应位,对于每个二进制来说,如二都该位有一个1
或都是1,结果为1,否则为0
运算符的优先级
级别运算符说明
1 =,+=,-=,/=,%=,*=,&=,^=,|=,<<=,>>== # 赋值运算符
2 || # 逻辑或前面不成功执行
3 && # 逻辑与前面成功后执行
4 | # 按位或
5 ^ # 按异位与
6 & # 按位与
7 ==,!= # 等于/不等于
8 <=,>=,<,> # 大于或等于/小于或等于/大于/小于
9 <<,>> # 按位左移/按位右移(无转意符号)
10 +,- # 加减
11 *,/,% # 乘,除,取余
12 ! ,~ # 逻辑非,按位取反或补码
13 -,+ # 正负
##################################
数学运算
$(( )) 整数运算符号大致有这些:
+ - * / **:分別为"加、減、乘、除、密运算"
& | ^ !:分別为"AND、OR、XOR、NOT" 运算
% :余数运算
运算
let
let x=16/4
let x=5**5
手工命令行计数器
expr
SUM=`expr 2 * 3`
计算字串长度
expr length "bkeep zbb"
抓取字串
expr substr "bkeep zbb" 4 9
抓取第一个字符数字串出现的位置
expr index "bkeep zbb" e
整数运算
expr 14 % 9
expr 30 / 3 / 2 # 运算符号有空格
增量计数(加循环即可)
LOOP=0
LOOP=`expr $LOOP + 1`
数值测试(如果试图计算非整数,则会返回错误。)
rr=3.4
expr $rr + 1
expr: non-numeric argument
rr=5
expr $rr + 1
6
模式匹配(可以使用expr 通过指定冒号选项计算字符串中字符数)
.* 意即任何字符重复0 次或多次
expr bkeep.doc : '.*'
在expr 中可以使用字符串匹配操作,这里使用模式抽取.doc 文件附属名。
expr bkeep.doc : '(.*).doc'
次方计算
echo "m^n"|bc
##################################
grep 用法
-c 显示匹配到得行的数目,不显示内容
-h 不显示文件名
-i 忽略大小写
-l 只列出匹配行所在文件的文件名
-n 在每一行中加上相对行号
-s 无声操作只显示报错,检查退出状态
-v 反向查找
-e 使用正则表达式
-A1 打印匹配行和下一行
-wc 匹配出现次数
grep 可用于if 判断,找到$?为then
过滤关键字符行
grep -v "a" txt
精确匹配字符串










