# What do you call this | character?

**URL:** <https://boards.straightdope.com/t/what-do-you-call-this-character/585426>\
**Category:** Factual Questions\
**Created:** [June 14, 2011, 2:24pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426 "2011-06-14T14:24:18Z")\
**Posts on this page:** 17\
**Page:** 3

<div class="post-metadata">

**Author:** ![septimus](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/septimus/32/410_2.png) [@septimus](https://boards.straightdope.com/u/septimus)\
**Post date:** [June 15, 2011, 4:34pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/41 "2011-06-15T16:34:38Z")

</div>

> [@robert\_columbia](#):
>
> Well, DOS is a single tasking OS. UNIX/Linux is inherently a multitasking OS.

I think that’s my point (though, Dos 1.1 actually had a hard-coded 2nd task for the background printing :smack: ). It took me hours, rather than days, to write a multi-tasking OS from scratch.

Sorry to go so far off-topic. But the way Americans idolize Gates and Microsoft for their “great technological achievements” makes the Birthers and Truthers seem normal!

---

<div class="post-metadata">

**Author:** ![KneadToKnow](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/kneadtoknow/32/3999_2.png) [@KneadToKnow](https://boards.straightdope.com/u/KneadToKnow)\
**Post date:** [June 15, 2011, 4:56pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/42 "2011-06-15T16:56:15Z")

</div>

> [@septimus](#):
>
> the way Americans idolize Gates and Microsoft for their “great technological achievements”

Care to back that generalization up with some citation?

Microsoft, together with IBM and later the clone-makers, made accessible stuff which until the mid-80s or so had been inaccessible to the average consumer much the same way Henry Ford did decades earlier. Recognition of that fact is merited.

I don’t know anyone who “idolize[s] Gates and Microsoft” for anything.

---

<div class="post-metadata">

**Author:** ![BMalion](https://avatars.discourse-cdn.com/v4/letter/b/e274bd/32.png) [@BMalion](https://boards.straightdope.com/u/BMalion)\
**Post date:** [June 15, 2011, 5:41pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/43 "2011-06-15T17:41:02Z")

</div>

> [@Autolycus](#):
>
> I just braingasmed. Thank you.

Is it possible to explain the joke to a non-programmer?

---

<div class="post-metadata">

**Author:** ![Bosstone](https://avatars.discourse-cdn.com/v4/letter/b/22d042/32.png) [@Bosstone](https://boards.straightdope.com/u/Bosstone)\
**Post date:** [June 15, 2011, 5:45pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/44 "2011-06-15T17:45:56Z")

</div>

> [@BMalion](#):
>
> Is it possible to explain the joke to a non-programmer?

Weirdly, the explanation showed up in a post _before_ the joke:

> [@Zeldar](#):
>
> So as not to get all confused, check out:
> 
> [http://admonkey.org/2008/07/25/british-airways-open-skies-ce-nest-pas-une-publicite/](http://admonkey.org/2008/07/25/british-airways-open-skies-ce-nest-pas-une-publicite/)

---

<div class="post-metadata">

**Author:** ![BMalion](https://avatars.discourse-cdn.com/v4/letter/b/e274bd/32.png) [@BMalion](https://boards.straightdope.com/u/BMalion)\
**Post date:** [June 15, 2011, 6:19pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/45 "2011-06-15T18:19:40Z")

</div>

I did not click the link, thank you.

damned funny, I am not a programmer but I did major in art history, so I laughed.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [June 15, 2011, 9:39pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/46 "2011-06-15T21:39:48Z")

</div>

Someday, I’m going to get a shadowbox, mount a pipe in it with that caption, and hang it on my wall.

---

<div class="post-metadata">

**Author:** ![CookingWithGas](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/cookingwithgas/32/485_2.png) [@CookingWithGas](https://boards.straightdope.com/u/CookingWithGas)\
**Post date:** [June 16, 2011, 1:14am UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/47 "2011-06-16T01:14:01Z")

</div>

> [@septimus](#):
>
> Let’s avoid confusion here. My comment about DOS’s pipe had absolutely nothing to do with any command language or its syntax. It is their implementation of pipe (letting writer run to completion before starting reader) which boggles one’s imagination…

I really don’t want to go too far in this direction because I don’t want to put myself in a position of defending (or deriding) DOS as an OS, or DOS command line. But what you are describing is still shell language execution, even though your issue is not about syntax. An OS does a lot more than provide a shell language, such as provides routines to applications to access system resources, manages memory, and scores of things that have nothing to do with how it processes commands from a user.

---

<div class="post-metadata">

**Author:** ![septimus](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/septimus/32/410_2.png) [@septimus](https://boards.straightdope.com/u/septimus)\
**Post date:** [June 16, 2011, 6:03am UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/48 "2011-06-16T06:03:55Z")

</div>

> [@CookingWithGas](#):
>
> … what you are describing is still shell language execution, even though your issue is not about syntax. An OS does a lot more than provide a shell language, such as provides routines to applications to access system resources, manages memory, and scores of things that have nothing to do with how it processes commands from a user.

This is all increasingly off-topic, but I should correct a misconception.

In Unix, _fork()_ and _pipe()_ are ingenious system calls which are independent of shell language. Programs like _dump_ will invoke such calls internally, with no relation to how they were started on the command line.

You’re correct that DOS’ implementation of pipe is a half-assed shell language function. That’s because those system calls do not exist in the half-assed “operating system” DOS.

Disclaimer: I do not keep up with Microsoft’s billion-dollar technology. By now I suppose they’ve caught up with some (but certainly not all) of what Unix had 35 years ago.

---

<div class="post-metadata">

**Author:** ![Leo\_Bloom](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/leo_bloom/32/10377_2.png) [@Leo\_Bloom](https://boards.straightdope.com/u/Leo_Bloom)\
**Post date:** [June 16, 2011, 1:44pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/49 "2011-06-16T13:44:30Z")

</div>

I believe this was alluded to above, but the Wiki entry for “vertical bar” has a long long list of how this sign is used in different fields.

---

<div class="post-metadata">

**Author:** ![Bytegeist](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@Bytegeist](https://boards.straightdope.com/u/Bytegeist)\
**Post date:** [June 16, 2011, 8:00pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/50 "2011-06-16T20:00:53Z")

</div>

> [@Chronos](#):
>
> The bash shell appears to not ascribe any significance at all to a ! …

It does have a couple meanings: one, to repeat a previous command in your interactive history. Two, as a boolean NOT operator, when inside a square-bracket conditional.

> [@mlees](#):
>
> Huh. The character on the keyboard key is two distinct lines, upright, one above the other. But on this board, it comes out as a single solid line: |, taller than I, 1, l.

Your keyboard is showing a “broken vertical bar”.

There has long been some confusion over whether that character (ASCII 124) should be rendered as a solid line, or as a broken line with a small gap in the middle. Various printers, video cards, and keyboards have used one form, others have used the other. This inconsistency was more common in the early days of the home computer. Today, mostly, everyone has agreed it’s supposed to be a solid vertical bar.

But [here for example](http://upload.wikimedia.org/wikipedia/commons/f/f8/Codepage-437.png) is the character set of the original IBM PC, as displayed by the video cards of that time. As you can see, near the end of the fourth line, it appeared as a broken bar.

---

<div class="post-metadata">

**Author:** ![moi](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@moi](https://boards.straightdope.com/u/moi)\
**Post date:** [June 16, 2011, 9:38pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/51 "2011-06-16T21:38:59Z")

</div>

> [@Francis\_Vaughan](#):
>
> |
> 
> Ceci n’est pas une pipe

Lovely. 🆒

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [June 16, 2011, 9:43pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/52 "2011-06-16T21:43:05Z")

</div>

> [@](#):
>
> It does have a couple meanings: one, to repeat a previous command in your interactive history. Two, as a boolean NOT operator, when inside a square-bracket conditional.

OK, then, I didn’t test it very thoroughly, and in the tests I did, it appeared to treat it as just another character. Certainly, though, it doesn’t mean “pipe”, as | does.

---

<div class="post-metadata">

**Author:** ![robert\_columbia](https://avatars.discourse-cdn.com/v4/letter/r/e79b87/32.png) [@robert\_columbia](https://boards.straightdope.com/u/robert_columbia)\
**Post date:** [June 16, 2011, 9:44pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/53 "2011-06-16T21:44:49Z")

</div>

What’s the opposite of |?

-

---

<div class="post-metadata">

**Author:** ![Saltire](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/saltire/32/553_2.png) [@Saltire](https://boards.straightdope.com/u/Saltire)\
**Post date:** [June 16, 2011, 10:01pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/54 "2011-06-16T22:01:56Z")

</div>

As a typographer, I feel the need to tell everyone that this is one of those unusual characters (like the backslash) that was invented by computer or teletype people. It didn’t really exist in printing as a separate character until it showed up on computer keyboards that typographers had to use. Only then did these things start being included in typefaces. They still have virtually no use in typography outside of setting programming or mathematical examples.

I’m sure someone will now post examples showing how the previous paragraph is wrong.

---

<div class="post-metadata">

**Author:** ![CookingWithGas](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/cookingwithgas/32/485_2.png) [@CookingWithGas](https://boards.straightdope.com/u/CookingWithGas)\
**Post date:** [June 16, 2011, 10:08pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/55 "2011-06-16T22:08:13Z")

</div>

> [@septimus](#):
>
> In Unix, _fork()_ and _pipe()_ are ingenious system calls which are independent of shell language. Programs like _dump_ will invoke such calls internally, with no relation to how they were started on the command line.

I thank you for that, I have worked in the Unix environment but never coded to its system calls. That does shed a different light on things. 🙂

---

<div class="post-metadata">

**Author:** ![Fubaya](https://avatars.discourse-cdn.com/v4/letter/f/c2a13f/32.png) [@Fubaya](https://boards.straightdope.com/u/Fubaya)\
**Post date:** [June 16, 2011, 10:32pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/56 "2011-06-16T22:32:19Z")

</div>

> [@Bytegeist](#):
>
> It does have a couple meanings… as a boolean NOT operator, when inside a square-bracket conditional.

It’s a builtin keyword that negates tests and exit codes, but doesn’t have to be in brackets (although that’s where tests usually reside).

# echo hi && echo bye

hi  
bye

# ! echo hi && echo bye

hi

# ! echo hi || echo bye

hi  
bye

# if $(true); then echo true; fi

true

# if ! $(true); then echo true; fi

#

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [June 16, 2011, 10:42pm UTC](https://boards.straightdope.com/t/what-do-you-call-this-character/585426/57 "2011-06-16T22:42:03Z")

</div>

> [@](#):
>
> As a typographer, I feel the need to tell everyone that this is one of those unusual characters (like the backslash) that was invented by computer or teletype people. It didn’t really exist in printing as a separate character until it showed up on computer keyboards that typographers had to use. Only then did these things start being included in typefaces. They still have virtually no use in typography outside of setting programming or mathematical examples.

Like I said before, the | (and, for that matter, the ) was originally invented for use in character graphics. Those would probably be just as useful in paper typography as on computers.

[Previous page](https://boards.straightdope.com/t/what-do-you-call-this-character/585426.md?page=2)
