为什么必须加引号?

为什么必须加引号?

apple dict # grep -e \<c...h\> words
apple dict # grep -e '\<c...h\>' words
canch
catch
cauch
cheth
cinch
clash
closh
cloth
coach
conch
corah
cotch
couch
cough
couth
crash
crith
crush
cruth
curch
cutch
cyath
apple dict # grep -e "\<c...h\>" words
canch
catch
cauch
cheth
cinch
clash
closh
cloth
coach
conch
corah
cotch
couch
cough
couth
crash
crith
crush
cruth
curch
cutch
cyath
apple dict #      
如果不用引号, \ 被看做转意符, 因此 \<c...h\> 被解释为 <c...h>      
为什么
apple dict %grep -e cn words

apple dict %grep -e cn* words

apple dict %grep -e *cn* words

不一样呢?


zsh shell 不同于bash
apple dict %grep  *cn* words
zsh: no matches found: *cn*
apple dict %      
1. grep 的 * 表示重复前一个 pattern 零次或者多次

2. 各种 shell 的语法有异, 对特殊字符的解释也就有所不同      
老大怎么回复这麽及时呢?有什么窍门吗?