Re: Misadventures with bash shell
---------------------------------

StackSmith asked[1] people to comment on their favourite shells.  My
answer's a bit more wacko than most.  I use and mostly love eshell,
which is a pure emacs-lisp program that mimics the behaviour of more
traditional shells like bash.

I like this because:

1. Combined with TRAMP (emacs' subsystem for allowing remote access to
files and programs over ssh), it means that I have one common shell
for controlling both local and a variety of remote machines.

2. I can run both regular programs and emacs functions directly from
the command line. This is particularly useful as there are many elisp
wrappers/replacements for common tools such as man, diff and others
which open results in new buffers and are generally nicer to use from
emacs. (I can also directly run elisp expressions at the prompt,
although one can really do this anywhere in emacs.)

3. Having my shell transcript always in an emacs buffer and directly
editable is immensely useful in ways that aren't easy to describe.

For sure eshell is not perfect - I drop into a real shell whenever
I need to do anything with pipes - but it's orders of magnitude better
than being trapped in terminal emulator hell.

p.s. I realise that other answers have focused more on the use of
shells as scripting languages.  I still write scripts for bash.  I
don't consider this a concession, as I also write awk scripts despite
never using awk as an interactive shell.

[1] gemini://gemini.ctrl-c.club/~stack/gemlog/2022-08-01.bash.gmi