Again, please show mercy on me in my innexperience. The current
patch-level of the ZSH shell I am using is:
zsh-5.0.7-0-g208bded
It is the standard "Arch Linux" zsh package as of January 2015.
On 02/09/2015 03:38 AM, Micah Waddoups
wrote:
Hello all,
I am still a beginner in developing, or I would tackle this
issue directly myself. The misbehavior is when the command list
has a null function with parameters, the
last-command-last-parameter ($_) built-in variable goes blank.
Example:
local a=1 b=2 c=3; : One; function { : Two; echo $_; print
-l $argv; } $_ Three; print -l $_ Four;
## Should print:
# Two
# One
# Three
# Three
# Four
## Currently prints:
# Two
# Three
# Four
## Conversely, when no arguments are given to the null function,
## it operates mostly normally, but as if the function were not
there:
local a=1 b=2 c=3; : One; function { : Two; echo $_;
print -l $argv; }; print -l $_ Four;
## Outputs:
# Two
#
# One
# Four
## ( second line is 'print -l' but $argv is empty
It would seem this unexpected behavior may be the result of an
unfinished shell source where the best shell behavior was not
clear to the programmer. I admit dealing with null functions is
a minor point of dilema with script writing, but I have gotten
super intricate with the beautiful script design and features
made available to me by ZSH, and I have found that the behavior
suggested at "Should print" above is the only way that is
consistent in a large script where an alias may use a null
function for better handling of parameters without interfering
with any currently same-name functions, or when a Heredoc is
used and one wants to grab the last argument to use as the
parameter of an immediately following null function.
--
Micah micah@xxxxxxxxxxxx
AskMicah.Net,
Problem Solving Agency
|