Received a scan of an internal Bell Labs memo from 1982 today that showed an alternative Shell for Unix 4.0(!) called CL by Martin Sturzenbecker. It had typed variables and was referenced by David Korn in the 1986 ksh memo. Much thanks to the Bell Labs/Nokia archivists for finding it!
awb
From: #berlin
Lives in: #sanfrancisco
Passionate about command interfaces and terminals.
Emacs contributor.
Formerly curator and historian at https://computerhistory.org/
Posts
From: # berlin Lives in: # sanfrancisco Passionate about command interfaces and terminals. Emacs contributor. Formerly curator and historian at https:// computerhistory.org/ # shell # unix # linux # bash # awk # pdp10 # emacs # elisp # apl
From: # berlin Lives in: # sanfrancisco Passionate about command interfaces and terminals. Emacs contributor. Formerly curator and historian at https:// computerhistory.org/ # shell # unix # linux # bash # awk # pdp10 # emacs # elisp # apl
Question for 1980s/early-1990s Unix/Linux users: What scripting languages did you encounter other than the various Shells, AWK, Perl, Tcl, maybe early Python?
Looking for general purpose languages that would let you run a stand-alone script. I don't think Rexx saw significant use on Unix. Any other popular languages maybe only in certain geographies (like Ruby/Lua initially)? How about other non-Unix languages that made the jump?
From: # berlin Lives in: # sanfrancisco Passionate about command interfaces and terminals. Emacs contributor. Formerly curator and historian at https:// computerhistory.org/ # shell # unix # linux # bash # awk # pdp10 # emacs # elisp # apl
Delivered my "The Zen of Shell Scripting" presentation today. On my intro slide I mention that Shell is often treated as second class because it is "not a real language" and at the same time "too hard to learn".
Seemed like people enjoyed the talk and will take Shell scripting more seriously now. Success!
From: # berlin Lives in: # sanfrancisco Passionate about command interfaces and terminals. Emacs contributor. Formerly curator and historian at https:// computerhistory.org/ # shell # unix # linux # bash # awk # pdp10 # emacs # elisp # apl
As if patterns, extended patterns, and BRE/ERE regexes in Shell scripts weren't confusing enough, the string operands for the tr utility really look like regexes, but aren't. There is no need for a bracket expression for character classes (it's implied) and of course this is historically different between SystemV, BSD, and the XPG standard that POSIX is based on.
From: # berlin Lives in: # sanfrancisco Passionate about command interfaces and terminals. Emacs contributor. Formerly curator and historian at https:// computerhistory.org/ # shell # unix # linux # bash # awk # pdp10 # emacs # elisp # apl
Preparing an engineering-focused presentation entitled "The Zen of Shell Scripting" for an internal talk at work. Question for seasoned Shell programmers: What would you have liked to know when you first started out? Interested in both big ideas and sharp edges that come with Shell scripting.
From: # berlin Lives in: # sanfrancisco Passionate about command interfaces and terminals. Emacs contributor. Formerly curator and historian at https:// computerhistory.org/ # shell # unix # linux # bash # awk # pdp10 # emacs # elisp # apl
Ran into two compatibility issues with my Shell scripts between different Ubuntu versions: dpkg-deb changed its default compression and pigz changed where it sends --version info (used to be stderr, then stdout).
All this happened years ago, but OS version upgrades at the enterprise level are hard, so it's good to be aware of differences (like that the non-GNU AWK in Ubuntu Xenial is a mawk version that requires quoting a slash in bracket expressions.)
From: # berlin Lives in: # sanfrancisco Passionate about command interfaces and terminals. Emacs contributor. Formerly curator and historian at https:// computerhistory.org/ # shell # unix # linux # bash # awk # pdp10 # emacs # elisp # apl
Just added a BUGS section to the man page of a tool I wrote. While I don't think it matters that it will not work after 2999-12-31 and has issues displaying file sizes larger than 999.999TiB, it's just polite to let the user know what the limits are.
Correction after looking at the code again: It stops working after 9999-12-31. Isn't there a Y10k bug report against VMS?
From: # berlin Lives in: # sanfrancisco Passionate about command interfaces and terminals. Emacs contributor. Formerly curator and historian at https:// computerhistory.org/ # shell # unix # linux # bash # awk # pdp10 # emacs # elisp # apl
Why should you care about the POSIX Shell? Because it is the *system* Shell for POSIX systems!
It's the default Shell when executing commands with e.g., cron, in a Makefile or Dockerfile, the Ansible Shell module, and anything else that uses the system(3) call explicitly like C, m4, AWK, Perl, Tcl, Python, etc. Some will honor the SHELL environment variable (like ex), some will not (like ed).