第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
相关文章推荐
- 第3章 shell结构化命令------------( 双圆括号命令及操作实例)
- 第3章 shell结构化命令------------( 双圆括号命令及操作实例)
- 第3章 shell结构化命令------------( 双方括号命令及操作实例、case命令)
- 第3章 shell结构化命令------------( 双方括号命令及操作实例、case命令)
- 第3章 shell结构化命令------------( 双方括号命令及操作实例、case命令)
- 第3章 shell结构化命令------------(for命令与使用实例)
- 第3章 shell结构化命令------------(for命令与使用实例)
- 第3章 shell结构化命令------------(for命令与使用实例)
- 第3章 shell结构化命令------------(shell的数值比较、shell的字符串比较、shell的文件比较、shell的条件组合操作)
- 第3章 shell结构化命令------------(C式的for循环)
- 第3章 shell结构化命令------------(while、until循环,九九乘法表)
- 第3章 shell结构化命令------------(文件数据的循环与控制循环)
- adb shell网络命令nestat、ping、netcfg、ip操作实例解释
- adb shell网络命令nestat、ping、netcfg、ip操作实例解释
- 第3章 shell结构化命令------------(C式的for循环)
- 第3章 shell结构化命令------------(while、until循环,九九乘法表)
- 第3章 shell结构化命令------------(C式的for循环)
- 第3章 shell结构化命令------------(文件数据的循环与控制循环)
- 第3章 shell结构化命令------------(while、until循环,九九乘法表)
- 第3章 shell结构化命令------------(文件数据的循环与控制循环)