以下代码
if [ $a == "apple" ];
then
echo "True"
else
echo "False"
fi
如果( ) 则输出"True"
( )。如果使用通配符,则比较失败:"False"
a="apple"
a="plum"
if [ $a == "appl"* ];
并且如果一个替换为 是固定[
的[[
:
if [[ $a == "appl"* ]];
[
和[[
in if
statements有什么区别?
以下代码
if [ $a == "apple" ];
then
echo "True"
else
echo "False"
fi
如果( ) 则输出"True"
( )。如果使用通配符,则比较失败:"False"
a="apple"
a="plum"
if [ $a == "appl"* ];
并且如果一个替换为 是固定[
的[[
:
if [[ $a == "appl"* ]];
[
和[[
in if
statements有什么区别?
[
是一个命令(基本上是命令的变体test
)。[[
是许多 shell 中的内置函数。foo*
在内部写入[...]
文件名扩展(又名通配符)时;而内部[[...]]
模式匹配发生。[[
比它更强大和更有能力,[
但如果便携性是一个问题,则不应使用。[
并且[[
不是if
语法的一部分,您可以像在[ "$exit" = 'yes' ] && exit
.[...]
你应该更喜欢=
而不是==
. 据我所知,第二个在许多 shell 中都被接受,但不符合 POSIX 标准。顺便说一句,即使您真的知道分词的行为方式,我也建议您对变量进行双引号。