3 ms·
The shell was superior to any *nix shell, because the interface with programs was sane. Rather than the shell expanding *.foo into a zillion individual strings
by drfuchs 5y ago
The shell was superior to any *nix shell, because the interface with programs was sane. Rather than the shell expanding *.foo into a zillion individual strings, the shell and the program agree that there's a file(s) parameter, and the program dynamically asks for the first, then next, then next, etc. matching file. So, you don't need to recompile your kernel every year or two to increase the maximum command line length.
And that was just the beginning of it. Programs could tell the shell what all their options were, so while you were typing a command, you could hit "?" and get something like a brief "man" page of options available at that point. Plus command completion worked all along the way, so not only would file names be completed when you hit <esc>, but also flags and parameters and such.
Given how baked-in the argc/argv interface is in *nix, there's no hope we'll ever be able to experience this again. How wonderful it was to be able to say the equivalent of "cp *.c (TO) *.old" and have it do what you obviously want. (The "(TO)" was a "noise-word" automatically inserted by the shell as part of the copy command's auto-completion.)
- R0b0t1 5y agoThat's hilarious. I came up with something similar while brainstorming. Nothing new under the sun indeed.