diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2010-11-17 16:35:27 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2010-11-17 16:35:27 +0000 |
commit | 851b8e151004ec729dad9c8c7867bbf67649df8e (patch) | |
tree | 5170a88631283830e471463f31168413c7c1026b /Doc/Zsh | |
parent | 7be8594c8cfea3fac39fa73cd5bcbae7e7f23477 (diff) | |
download | zsh-851b8e151004ec729dad9c8c7867bbf67649df8e.tar.gz zsh-851b8e151004ec729dad9c8c7867bbf67649df8e.tar.xz zsh-851b8e151004ec729dad9c8c7867bbf67649df8e.zip |
28377: document more alias problems
Diffstat (limited to 'Doc/Zsh')
-rw-r--r-- | Doc/Zsh/grammar.yo | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Doc/Zsh/grammar.yo b/Doc/Zsh/grammar.yo index 27683fc70..5c803a681 100644 --- a/Doc/Zsh/grammar.yo +++ b/Doc/Zsh/grammar.yo @@ -500,6 +500,27 @@ is too late to expand the newly defined alias. This is often a problem in shell scripts, functions, and code executed with `tt(source)' or `tt(.)'. Consequently, use of functions rather than aliases is recommended in non-interactive code. + +Note also the unhelpful interaction of aliases and function definitions: + +example(alias func='noglob func' +func+LPAR()RPAR() { + echo Do something with $* +}) + +Because aliases are expanded in function defintions, this causes the +following command to be executed: + +example(noglob func+LPAR()RPAR() { + echo Do something with $* +}) + +which defines tt(noglob) as well as tt(func) as functions with the +body given. To avoid this, either quote the name tt(func) or use the +alternative function definition form `tt(function func)'. Ensuring the +alias is defined after the function works but is problematic if the +code fragment might be re-executed. + texinode(Quoting)()(Aliasing)(Shell Grammar) sect(Quoting) cindex(quoting) |