文章目录
进制转换
使用 $((...)) 这样的形式进行进制转换
echo $(( 2#11 )) #将二进制11 转换为十进制 结果是3
echo $(( 16#ff )) #将十六进制11 转换为十进制 结果是15
echo $(( 8#11 )) #将八进制11 转换为十进制 结果是9
特殊转义符的特殊含义
echo 和 sed命令中
\ # 续行
\n # 换行
\r # 回车
\t # 水平制表符tab
\v # 垂直制表符
\b # 后退符
\a # 提示音或提示符(蜂鸣或闪烁)
\0xx # 转换为八进制ASCII码
双圆括号结构(( )) ,算术运算符(记住:在/以及%运算中,除数不能为0)
双圆括号结构(( )) 与 let 效果一样
(( a=5+3 )) ; echo $a
(( a ++ )) ; echo $a #自增后置预算,自减后置(( a -- ))
(( ++ a )) ; echo $a #自增前置预算,自减前置(( -- a ))
$a=(( 5+3 )) ; echo $a
# C语言风格的三元操作
(( t = a<45?7:11 )) ; echo $t #如果a<45,那么就把7赋值给t,否则把11赋值给t
let "b=3+5" ; echo $b
运算符 意义 例子 写法 结果
+ 加运算 3+5 let "a=3+5" 8
- 减运算 3-5 let "a=3-5" -2
* 乘运算 3*5 let "a=3*5" 15
/ 除运算 5/3 let "a=5/3" 1 #只会保留整数部分
% 取 余 5%3 let "a=5%3" 2
** 幂运算 5**3 let "a=5**3" 125
算术复合赋值运算符
+= a+=5 a=a+5 let "a+=5"
-= a-=5 a=a-5 let "a-=5"
*= a*=5 a=a*5 let "a*=5"
/= a/=5 a=a/5 let "a/=5"
%= a%=5 a=a%5 let "a%=5"
自增自减运算符(只能用在变量上,不能用在常数或则表达式上){如++5,(5+x)++}都是错的
前置性:++variable ,--variable #先改变变量的值,再将改变后的变量值交给表达式
后置性:variable++ ,variable-- #先将变量的值交给表达式,再改变变量的值
ww=5
let "a=(++ww)" #这里的变量不需要$
echo $a
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论