Shell 学习笔记(三)状态码 条件判断 算术操作
?1、!
?????? 逻辑 ?????????????? then (( a < b ))?????????#数字比较????????
???????????????else??[[ $a < $b ]]?????#字符串字符序比较
?????????????fi
?????? then
??????????? echo '$a is less than $b'
?????? fi
??????
???????#if [ ] 测试
???????if [ xyz ]??? # 字符串、任意数字均为真,未声明变量为假,注意要有空格,否则报错
3、test [ ]? [[ ]]? (( ))
?????? if test -z "$1"???????? ==? if [ -z "$1"?]
???????使用??????
?????? (( )): 扩展并计算一个算术(整数)表达式的值. 如果表达式的结果为0, 那么返回的退出状态码为
?????
??????<小于,依照ASCII字符排列顺序??????? >? 与此相同
???????????????
注意"<"字符在[ ] 结构里需要转义
??????????????
?????? -z? : 字符串为"null",即是指字符串长度为零。???????-n? : 字符串不为"null",即长度不为零.?
6、算术操作符
???????** 求幂
???????算术操作符经常会出现在 expr或let表达式中.
???????let “a=5**3”
?????? expr 5%3
?
7、数字表示
?????? 8进制: 以 0 开头
?????? 16进制: 以'0x'或者'0X'开头的数字
?????? 其他进制: BASE#NUMBER, BASE的范围在2到64之间,NUMBER受限于ASCII字符范围(2 - 64):10个数字 + 26个小写字母 + 26个大写字符 + @ + _
???????e.g.??let "b64 = 64#@_"??????# 4031
???????