Dear Matthew 2015-11-25 11:06 GMT+07:00 Matthew Martin : > On Tue, Nov 24, 2015 at 9:46 PM, Ngô Huy wrote: > > Dear folks, > > > > I found the problem in zsh define function. Demo > > > > ls test() { echo "Bug !!!"} && ls && test > > > > it will print > > > > Bug !!! > > Bug !!! > > > That's expected behaviour. Since MULTI_FUNC_DEF is set by default in zsh > mode, both ls and test are being defined as functions with the body > echo "Bug !!!". > > % func1 func2 () { echo This is "$0"; } > % func1; func2 > This is func1 > This is func2 > % which func{1,2} > func1 () { > echo This is "$0" > } > func2 () { > echo This is "$0" > } > % unsetopt MULTI_FUNC_DEF > % func1 func2 () { echo This is "$0"; } > zsh: parse error near `()' > I know this behavior likes advanced programming language but multì_func_def should be turned off by default, it leads to risky problem when someone searchs as grep, ls malicious strings without quote Kind regards, Severus