Linux shell编程札记

if-then的高级特性

  [[]]、[]都是用来测试( 测试分为数值比较、字符串比较、文件比价 )的,[[]]关键字,里面可以用&&、||、<、>等类似C语言的语法[]bash内嵌的命令,也是用于测试的。[[]]通用性更好些。
(()),类似let,用于计算表达式()可以把多个命令括起来,在一个子shell运行。

  使用方法总结:  

    涉及高级数学运算使用(( ))

    涉及多个命令的执行使用()

    涉及高级语法测试使用 [[ ]]

    涉及bash内嵌的命令使用 []      

1、用于数学表达式的双尖括号

  (( expression )) 允许将高级数学表达式放入比较中。test命令只允许在比较中进行简单的算术操作。

  expression可以是任意的数学赋值或比较表达式。除了test命令使用的标准数学运算符,双尖括号命令符号还有:

  val++  val--  ++val  --val  !  ~  **  <<  >>  &  |  &&  ||

  双尖括号在普通命令中使用是赋值功能。

    (( val2 = $val1 ** 2 ))

2、用于高级字符串处理功能的双方括号

  使用了test命令中采用的标准字符串进行比较。但是它提供了test命令未提供的模式匹配特性。可以定义一个正则表达式来匹配字符串值。如:

    if [[ $USER == r* ]]

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。