if 语句中

if 语句中

下面的代码

if [ $a == "apple" ];
then
    echo "True"
else
    echo "False"
fi

如果( ) 则输出"True"( ) 。如果使用通配符,比较将失败:"False"a="apple"a="plum"

if [ $a == "appl"* ];

如果替换[[[

if [[ $a == "appl"* ]];

[声明中和声明[[中的区别是什么if

答案1

  • [是一个命令(基本上是命令的变体test)。[[是许多 shell 中的内置函数。
  • 当你foo*在里面写字的时候[...] 文件名扩展(又名通配符)发生;在里面时[[...]] 模式匹配发生。
  • [[[但如果考虑可移植性则不应使用。
  • [[[不是if语法的一部分,您可以像在 中一样使用它们[ "$exit" = 'yes' ] && exit
  • 在里面[...]你应该更喜欢=而不是==.据我所知,第二个被许多 shell 接受,但不符合 POSIX 标准。

顺便说一下,我建议你对变量加双引号,即使你真的知道如何做分词会表现。

相关内容