Linux基础-12(shell里所有的计算器)

来源:互联网 发布:淘宝虚假交易警告2次 编辑:程序博客网 时间:2024/05/29 18:03

    • shell里的所有计算器
    • 测试操作

shell里的所有计算器

$[] (()) $(()) expr bc bc -l浮点运算:yum install bc -y[root@MiWiFi-R3-srv ~]# echo 'scale=2;1/3'|bc -l.33

测试操作

测试文件状态

-d 目录-s 文件长度 > 0、非空-f 正规文件-w 可写-r 可读-x 可执行-L 符号连接-u 文件有 suid 位设置

字符串测试

= 两个字符串相等!= 两个字符串不相等-z 空串-n 非空串[root@MiWiFi-R3-srv ~]# var1='abc'[root@MiWiFi-R3-srv ~]# var2='123'[root@MiWiFi-R3-srv ~]# [ $var1 == $var2 ][root@MiWiFi-R3-srv ~]# echo $?1

测试数值

-eq 等于-ne 不等于-gt 大于-lt 小于-ge 大于等于-le 小于等于[root@MiWiFi-R3-srv ~]# [ 10000 -gt 250 ] #不要使用大于号小于号等于号等,要使用man test中规定的,详见下一小节4拓展[root@MiWiFi-R3-srv ~]# echo $?0

拓展测试符号 [[ ]] (())

数字测试符号# [ 10 < 2 ] # 语法错误-bash: 2: 没有那个文件或目录# # [[ 2 > 10 ]] # 结果错误# echo $?0# [[ 20 > 10 ]] # 正确# echo $?0# (( 10 < 20 ))# echo $?0字符测试# [ "aa" = "aa" ]# echo $?0# [[ "aa" = "aa" ]]# echo $?0# (( "aa" = "aa" )) #结果错误# echo $?1混合测试# [ a = a -a 10 < 20 ]-bash: 20: 没有那个文件或目录[root@seker ~]# [[ a = a -a 10 < 20 ]]-bash: syntax error in conditional expression-bash: syntax error near `-a'[root@seker ~]# [[ a = a && 10 < 20 ]][root@seker ~]# echo $?0[root@seker ~]# [[ a = a || 10 < 20 ]][root@seker ~]# echo $?0[root@seker ~]# (( a = a || 10 < 20 ))[root@seker ~]# echo $?0[root@seker ~]# (( a = a && 10 < 20 ))[root@seker ~]# echo $?0[root@seker ~]# 结论: 比较数字,使用(( ))其他测试使用 [[ ]]包含数字比较的混合测试,使用[[ expr1 && expr2 ]] (( expr1 || expr2 ))两个文件的比较FILE1 -ef FILE2测试两个文件是否是相同的inode有时为了找到同一个INODE号的文件 更倾向于使用 find 命令的 -inum 或 --samefileFILE1 -nt FILE2FILE1 is newer (modification date) than FILE2FILE1 -ot FILE2FILE1 is older than FILE2
原创粉丝点击