<div dir="ltr"><div>There's also Elvish that does some similar sorts of structured data handling: <a href="https://elv.sh/">https://elv.sh/</a></div><div><br></div><div>Also nutshell: <a href="https://github.com/nushell/nushell">https://github.com/nushell/nushell</a></div><div><br></div><div>I haven't used any of them, powershell does seem compelling.</div><div><br></div><div>There is also some tool I ran into within the last 6 months, I can't at all remember the name, but it provided all sorts of /proc-like things as structured data.  I remember being impressed by it, for whatever it's worth since I can't seem to find it, even after extensive searching.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 11, 2022 at 7:49 PM Bob Proulx <<a href="mailto:bob@proulx.com">bob@proulx.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> What: Tuesday January 11th, 2021 NCLUG Meeting<br>
<br>
We had a very small group.  There were five of us at the start and<br>
then six when a later member joined us.  So mostly we just had a round<br>
table discussion.  Which was not capturable.  But then Brother<br>
printers were mentioned and I grabbed the topic to talk about my<br>
latest "rage against the machine" printer driver problem.<br>
<br>
A person I am helping has a Brother HL3040CN printer.  Brother<br>
supports this with a printer driver for 32-bit Ubuntu 16.04 only.<br>
There is exactly one executable though and I don't see where it is<br>
ever called.  So other people have reported success by force<br>
installing it on newer 64-bit systems.  I am resisting doing that.  I<br>
might post more about this but discussing the problem just motivated<br>
me to think I will create a 32-bit Ubuntu 16.04 chroot and install it<br>
there to see what it does.<br>
<br>
Then there was a discussion of "rm -rf" problems.  People repeatedly<br>
have issues with removing too much.<br>
<br>
Anyway...  After a pretty fun random discussion of various things.<br>
Brian Sturgill gave a good talk about PowerShell.  Yes PowerShell.  It<br>
turns out that PowerShell is now released under a free software<br>
license.  You get full source.  You can compile it for your system<br>
from source.  Wow.<br>
<br>
Brian first started talking about soft points of traditional Unix<br>
shells.  Everything is a string.  No built in date handling for<br>
example.  Debugging of shell scripts can be an issue.  (I pointed out<br>
that there is a bash debugger available.  I don't use it myself but it<br>
looked interesting.)  And then mentioned Python doesn't solve these<br>
problems completely either.  Complained about the poor state of Python<br>
on Windows.<br>
<br>
Brian likes many things about PowerShell.  It has really good command<br>
line documentation.  In the PowerShell REPL it has dropdowns and<br>
completion.  TAB completion.  Lots of nice features.  PowerShell has a<br>
rich library of built in string manipulation actions.<br>
<br>
On Ubuntu/Mint/other install powershell as a snap package using the<br>
--classic option so that it has full file system permissions.  The new<br>
default is a read-only file system.  But for a programmable shell the<br>
entire purpose is to do things.<br>
<br>
Recommends it for cross platform operation between Windows and other<br>
environments.  Because PowerShell works not only on Windows but also<br>
is Free Software and available on BSD/GNU/Linux systems.<br>
<br>
In PowerShell many operations are builtins that return builtin first<br>
class objects.  For example in the shell one should never use ls<br>
programmatically to list directories but in PowerShell ls is a builtin<br>
that returns a first class internal object.  Which means that<br>
whitespace and metacharacters in file names are never a problem in<br>
PowerShell.<br>
<br>
Brians interpretation of the Unix command line is that it was written<br>
for the user.  Technical users certainly but still for the user.<br>
Whereas PowerShell was written for the developer.  Therefore it has<br>
very good C interoperability.  Shows some interactions between<br>
PowerShell and to kernel system calls.  There are wrappers for GTK for<br>
graphics programs.  "And then things get a little weird."  Demo of<br>
event driven callbacks for GTK button actions and such.<br>
<br>
The point was that PowerShell generically interacted with C / C#<br>
libraries allowing it to do, for example a graphical program even<br>
though PowerShell itself didn't know anything about GTK graphics.<br>
It's completely generic and dynamic.<br>
<br>
There were also other shells discussed.  Brian liked this site as an<br>
additional reference to good stuff too.<br>
<br>
    <a href="http://www.oilshell.org/" rel="noreferrer" target="_blank">http://www.oilshell.org/</a><br>
<br>
Good meetup!<br>
<br>
Due to the high rate of COVID19 in the county we decided not to do our<br>
traditional after meeting dinner at a local restaurant.  We will check<br>
again next month.<br>
</blockquote></div>