On Sat, Apr 13, 2024 at 8:14 AM Ray Andrews <rayandrews@xxxxxxxxxxx> wrote:
In the beginning, there were only environment strings ($SHELL, $PATH,
etc.) and positional parameters ($1, $2, etc.). When a command was
run, it got its arguments as an "array" of positional parameters.
This is how "variables" came to be called "parameters" in shell
jargon. This mapped directly onto C main() argc ($#) and argv[] ($@)
with the phantom $0 as the name of the command.
Some might say it's esoteric trivia but I disagree. When you
elucidate the history, and the mapping onto C, things make more
sense. The shells had to grow organically, didn't they?