The "loop and a half"

Ben Bacarisse ben.usenet at bsb.me.uk
Thu Oct 5 21:37:12 EDT 2017


Steve D'Aprano <steve+python at pearwood.info> writes:

> On Fri, 6 Oct 2017 09:57 am, Marko Rauhamaa wrote:
>
> [quoting Bart]
>>>> Yes, I tried typing 'sort' in Linux, where it apparently hangs (same
>>>> on Windows actually). The reason: because it might have killed
>>>> someone to have added a message saying what you are expected to type
>>>> and how to end it. (Namely, press Ctrl-D start at the start of a line
>>>> in Linux, and Ctrl-Z followed by Enter, I think also at the start, in
>>>> Windows.)
>
> Waiting for input isn't "hangs". That's an ignorant and foolish thing to say,
> more suited for a wet-behind-the-ears newbie than somebody who claims to be a
> long-time old-school programmer.

I suspect it's a wind-up.

<snip>
> [Marko]
>> As for informational messages, it is part of deep-seated Unix culture to
>> have quiet commands. The purpose of the silence is so you can easily
>> compose new commands out of existing commands via pipelines and scripts.
>> It would be inconvenient if you typed the command:
>> 
>>     grep ython message.txt | sort
>> 
>> and the sort command instructed you to press Ctrl-D.
>
> Indeed it would.
>
> But in fairness, if the author of the `sort` command had a commitment to
> friendliness in their programs, they could have `sort` only print a message
> when it is reading from stdin and writing to stdout,

I think you mean "when reading from a terminal".  In the example given
sort /is/ reading from stdin and writing to stdout.

> much as `ls` defaults to
> outputting control characters but automatically swaps to replacing them
> with ? when writing to a terminal.

ls often behaves completely differently when writing to a terminal.  The
main one is that it tabulates the file names into columns!  That's very
old behaviour.  A more modern innovation is coloured output.

> I believe that even Unix experts would be more effective with a judicious
> amount of not so much hand-holding as gentle guidance. Even experts aren't
> expert on every single command line tool.

That's true.  Some of it is here already.  I am addicted to tab
completion, especially when it is command-aware.

And there's a flip side.  I've come across a few too many programs
lately clearly written by people who want to be helpful, but the wordy
output is hard to parse when using the program in a script.  Some
programs offer a flag to simplify the output so it can be processed more
easily, but not all...

> But the OS is what it is, and the culture has a certain level of commandline
> machismo, so that's unlikely to change.

-- 
Ben.



More information about the Python-list mailing list