侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

第3章 shell结构化命令------------( 双圆括号命令及操作实例)

2023-11-22 星期三 / 0 评论 / 0 点赞 / 55 阅读 / 2687 字

3.3if-then的高级特征与case命令 在bash shell中最近新增了两个比较新的功能,它们提供了可以在if-then语句中使用的高级公共:双括号表示数学表达数、双方括号表示高级字符串处理

3.3 if-then的高级特征与case命令

         在bash shell中最近新增了两个比较新的功能,它们提供了可以在if-then语句中使用的高级公共:双括号表示数学表达数、双方括号表示高级字符串处理函数

3.3.1 使用双圆括号

         双圆括号命令允许在比较中包含高级数学公式。test命令只允许在比较中进行简单的算术操作。双圆括号命令提供更多的数学符号,这些符号时其他语言程序员习惯使用符号。圆括号命令的格式是:(( expression ))。

         术语expression可以是任何的数学赋值表达式或数学比较表达式。除了test命令使用的标准数学操作符,双括号命令中可以使用的其他操作符列表。

         

         PS:在双圆括号内的表达式中,不必转义大于号。这是双圆括号提供的另一个高级功能

#!/bin/bash#在if-then语句中使用双圆括号命令val=8bit=8(( val++ ))if(( $val== 9 ));then  echo "val后增量"$valfi(( val-- ))if(( $val== 8 ));then   echo "val后减量"$valfiif(( ++$val==8 ));then  echo "val前增量"$valfiif(( --$val==8 ));then  echo "val前减量"$valfiif(( $val!=8 ));then  echo "val逻辑否定"$valelse  echo "this is 逻辑否定 $val"fiif(( $val **2 ==64 ));then  (( v1=$val **2 ))  echo "val取幂"$v1else  echo "this is $val"fiif(( $val **2 ==64 )) || (( $bit<<1 ==16 ));then  (( v1=$val **2 ))  (( b1=$bit<<1 ))  echo "val取幂"$v1  echo "bit左移"$b1else  (( v1=$val **2 ))  (( b1=$bit<<1 ))  echo "This is val取幂"$v1  echo "This is bit左移"$b1fiif(( $val >8 )) && (( $bit>>1 ==8 ));then  (( v1=$val **2 ))  (( b1=$bit<<1 ))  echo "val取幂"$v1  echo "bit右移"$b1else  (( v1=$val **2 ))  (( b1=$bit<<1 ))  echo "This is val取幂"$v1  echo "This is bit右移"$b1fi if(( $bit & 2 ==0 ));then  (( b1=$bit & 2 ))  echo "按位与"$b1fiif(( $bit | 2 ==10 ));then  (( b1=$bit | 2 ))  echo "按位或"$b1fi

广告 广告

评论区