美文网首页
bash [[]] [] {} () 区别

bash [[]] [] {} () 区别

作者: zhj_njuer | 来源:发表于2018-02-15 02:23 被阅读0次

    ()和{}都是把命令组合一起,形成一个命令组。区别是()是起子进程,而{}是当前进程,尤其在命令组中赋值非常重要。 另外一个区别就是{}中两边要有空格,并且每条命令带;比如:{ commanda; commandb; }
    []和test命令一样,可以用来比较数值,字符或者判断:

    [ "$var" = 123 ] 判断是否是字符串123
    [ "$var" -eq 123 ] 判断是否是数字123
    [ -e "$var" ] 判断是否文件存在

    [[]]可以认为是[]的增强版。可以将多个命令组合起来,比如:

    [[ "$var1" = "$var2" ]] && echo "0" || echo "1"
    

    区别

    数字测试: -eq -ne -lt -le -gt -ge,[[ ]]同 [ ]一致
    文件测试: -r、-l、-w、-x、-f、-d、-s、-nt、-ot,[[ ]]同 [ ]一致
    字符串测试: > < =(同==) != -n -z,不可使用“<=”和“>=”,[[ ]]同 [ ]一致,但在[]中,>和<必须使用\进行转义,即>和<
    逻辑测试: []为 -a -o ! [[ ]] 为&& || !
    数学运算: [] 不可以使用 [[ ]]可以使用+ - * / %
    组合: 均可用各自逻辑符号连接的数字(运算)测试、文件测试、字符测试

    (()) 数值计算

    相关文章

      网友评论

          本文标题:bash [[]] [] {} () 区别

          本文链接:https://www.haomeiwen.com/subject/gfqqzxtx.html