解惑 [[ ]] 中 ==、!= 以及 =~、!~ 的使用及其「怪异」行为

不是空格的问题,如果没有空格,会提示错误的。      
引用:
原帖由 apsnowolf 于 2008-10-30 16:21 发表
不好意思,是笔误:实际是这样:
>fname=file1.txt
>if [[ $fname='*.txt' ]];then echo yes;else echo no;fi
>yes
............................................................
>var="zhongguo"
> ...
[[ ]] 中操作符两边是要有空格的 难道又是笔误?      
为了最大程度的避免不同版本的 =~ 带来的不兼容性:
引用:
Both problems may be solved by using a shell variable to hold the pattern.
Since word splitting is not performed when expanding shell variables in all
operands of the [[ command, this allows users to quote patterns as they wish
when assigning the variable, then expand the values to a single string that
may contain whitespace.
原文出处: Bash FAQ (搜 E14)