您的位置:首页 > 运维架构 > Shell

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

2016-12-02 12:32 537 查看

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

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

3.3.1 使用双圆括号

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

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

         


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

#!/bin/bash
#在if-then语句中使用双圆括号命令
val=8
bit=8
(( val++ ))
if(( $val== 9 ));then
echo "val后增量"$val
fi

(( val-- ))
if(( $val== 8 ));then
echo "val后减量"$val
fi

if(( ++$val==8 ));then
echo "val前增量"$val
fi

if(( --$val==8 ));then
echo "val前减量"$val
fi

if(( $val!=8 ));then
echo "val逻辑否定"$val
else
echo "this is 逻辑否定 $val"
fi

if(( $val **2 ==64 ));then
(( v1=$val **2 ))
echo "val取幂"$v1
else
echo "this is $val"
fi

if(( $val **2 ==64 )) || (( $bit<<1 ==16 ));then
(( v1=$val **2 ))
(( b1=$bit<<1 ))
echo "val取幂"$v1
echo "bit左移"$b1
else
(( v1=$val **2 ))
(( b1=$bit<<1 ))
echo "This is val取幂"$v1
echo "This is bit左移"$b1
fi

if(( $val >8 )) && (( $bit>>1 ==8 ));then
(( v1=$val **2 ))
(( b1=$bit<<1 ))
echo "val取幂"$v1
echo "bit右移"$b1
else
(( v1=$val **2 ))
(( b1=$bit<<1 ))
echo "This is val取幂"$v1
echo "This is bit右移"$b1
fi

if(( $bit & 2 ==0 ));then
(( b1=$bit & 2 ))
echo "按位与"$b1
fi

if(( $bit | 2 ==10 ));then
(( b1=$bit | 2 ))
echo "按位或"$b1
fi


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐