美文网首页
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 [[]] [] {} () 区别

    ()和{}都是把命令组合一起,形成一个命令组。区别是()是起子进程,而{}是当前进程,尤其在命令组中赋值非常重要。...

  • Mac上设置Java环境变量

    说明 如果是用bash,修改/.bash_profile或/.profile。两者的区别:.bash_profil...

  • Shell补课

    更改启动shell chsh -s /bin/bash shell目录文件 /etc/shells 区别.bash...

  • shell & bash基础命令及巧用

    shell与bash脚本的区别shell是Linux基础命令解释器bash(Bourne Again shell)...

  • 随笔21号20180404-linux下profile,bash

    /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 的区别 根目...

  • bash . source ./ 的区别

    用bash调用脚本的时候会创建一个和自己一模一样的shell子进程来执行这个外部命令。这个子进程中设置了自己的运行...

  • shell脚本学习记录

    bash -v test.sh bash -x test.sh 这两个编译语句都会提示你的出错的地方。 但是有区别...

  • /etc/profile 和~/.bash_profile区别

    /etc/profile 和~/.bash_profile区别 /etc/profile 为系统的每个用户设置环境...

  • Bash里面$@和$*的区别

    Bash里面$@和$*的区别 $@和 $*通常在bash处理命令行参数的时候使用。 相同点 大部分场景下他们是相同...

  • 奇葩的bash

    sh bash ./ source 的区别看这个:http://www.cnblogs.com/pcat/p/54...

网友评论

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

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