ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【shell 脚本】算术测试需要使用(( ))

【shell 脚本】算术测试需要使用(( ))

原创 Linux操作系统 作者:杨奇龙 时间:2011-03-16 15:11:03 0 删除 编辑
#!/bin/bash
  # 算术测试.
  # (( ... ))结构可以用来计算并测试算术表达式的结果.
  # 退出状态将会与[ ... ]结构完全相反!
  (( 0 ))
  echo "Exit status of \"(( 0 ))\" is $?."         # 1
  (( 1 ))
  echo "Exit status of \"(( 1 ))\" is $?."         # 0
  (( 5 > 4 ))                                      # 真
  echo "Exit status of \"(( 5 > 4 ))\" is $?."     # 0
  (( 5 > 9 ))                                      # 假
  echo "Exit status of \"(( 5 > 9 ))\" is $?."     # 1
  (( 5 - 5 ))                                      # 0
  echo "Exit status of \"(( 5 - 5 ))\" is $?."     # 1
  (( 5 / 4 ))                                      # 除法也可以.
  echo "Exit status of \"(( 5 / 4 ))\" is $?."     # 0
  (( 1 / 2 ))                                      # 除法的计算结果 < 1.
  echo "Exit status of \"(( 1 / 2 ))\" is $?."     # 截取之后的结果为 0.
                                                   # 1
  (( 1 / 0 )) 2>/dev/null                          # 除数为0, 非法计算.
 #           ^^^^^^^^^^^
  echo "Exit status of \"(( 1 / 0 ))\" is $?."     # 1
  # "2>/dev/null"起了什么作用?
  # 如果这句被删除会怎样?
  # 尝试删除这句, 然后在运行这个脚本.
 exit 0
======================
root@client.example.com ~/yang # ./calucate.sh
Exit status of "(( 0 ))" is 1.
Exit status of "(( 1 ))" is 0.
Exit status of "(( 5 > 4 ))" is 0.
Exit status of "(( 5 > 9 ))" is 1.
Exit status of "(( 5 - 5 ))" is 1.
Exit status of "(( 5 / 4 ))" is 0.
Exit status of "(( 1 / 2 ))" is 1.
Exit status of "(( 1 / 0 ))" is 1.
root@client.example.com ~/yang #

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-689625/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7700934