Working on UNIX and Linux shells and with shell scripts, as well as Perl and other scripting languages, is rife with “meta-characters” and combinations of meta-characters. Reading each character literally is tedious and can be ambiguous; over time a defacto English pronunciation has emerged for them. Many of these pronunciations settled into place as far back as the 1970’s.
Single Characters
! "Bang", in math say "Not"
@ "At"
# "Sh" or "Shuh" (from "shell")
Also "hash" when used outside a shell script,
but never "pound".
$ "Doll" (from "dollar"),
"Var" when preceding a variable
as in $func ("var func")
or $1 ("var one").
% "Cent" or "Perk" (from "percent")
^ "Hat", sometimes "Not"
& "Bag" (from "background") or "Amp" (from "ampersand")
in math, "Band" (bitwise and)
* "Star" or "Pop", also "Ass" (from "asterix")
in math, "Times"
( "Open", or "Open paren"
if part of a function then "Of"
as in x(2) "X of two"
) "Close", or "Close Paren"
{ "O-Brace",
or { "Brace" ... } "Close" (matches nested type).
When opening a choice set say "Choice" or
"Choice of" ending with "End", as in {a,bb,ccc}
"Choice aye comma be be comma cee cee cee end"
} "C-Brace"
[ "O-Brak",
or [ "Brak" ... ] "Close" (matches nested type)
] "C-Brak"
- "Dash", "Standard In/Out" (by itself)
in math expressions say unary "Neg"
or binary "Minus"
_ "Under"
+ "Plus" or "Add" (no surprise here)
= For assignment say "Gets", for compare say "Equals" (rare)
~ "Tilda", for bit inversion say "Flip",
as shell input say "Home".
' "Tick" (single quote or single apostrophe)
" "Quote" (no surprise here),
or "O-Quote" for opening quote
and "End" for end quote
` "Zek" (from "exec") or "Back" (the back-tick)
. "Dot" (no surprise here), in file path context say "Here"
as in ./a.b is "here slash a dot b"
, "Comma" (no surprise here)
/ "Slash" - only noobs say "forward slash"
In a path the first and last slashes are *always*
pronounced, if present; but middle slashes are
often silent.
In math, "Per", "By", or "Over"
\ "Whack" - don't say "back slash"!
| "Pipe" or "Send", in math "Boor" (bitwise or)
|& is "Piping" not "pipe and"
: "Colon" or "Ta", often silent in context
; "Sem" or "Semi" (from "semicolon")
< "From" in redirection, "Less" in comparison
> "To" in redirection, "Great" in comparison
? "What" (without inflection) or "Kwess" (from "question")
w "Dub" (from "double-u") - Don't say "Double U"
"Blank" for a single blank character
"Tab" when an actual tab character is used
"Space" or "Whites" for a series of whitespace
"Next" or "Newline" for a newline (10) or (13)(10)
"Ret" or "Return" for an actual carriage return (13)
Uppercase letters or a word with a leading uppercase
letter are preceded with the word "Up", for example:
"ptrX3" is pronounced "pee tee ar up x three".
"q_Delta_X"
is "que under up Dee ee el tee ay under up x"
or "que under up delta under up x".
And for an entire uppercase word say "All up" then the
letters or word:
"EOF" is pronounced "all up ee oh eff".
Examples
This snipped of shell is read as:
TBS…
Character Combinations
#! "SheBang"
++ "Barb" or "plus plus"
-- "Dada" or "dosh" when preceding an option
"Down" or "dek-er" (from decrement) in math
.. "Dit" or "ditdit", or in range context "Through",
In filepath context say "Up" or "Updir"
... "Whatever", or in range context "Ranges"
<> "Box"
>& "Goes to", as in 2>&1 "Two goes to One"
!! "Bang bang"
&& "And" (not "and-and") See & "band".
When sequence chaining, "Then".
|| "Or" (not "or-or") See | "boor".
When sequence chaining, "Else".
|& "Piping", not "pipe and"
:= "Gives" (also called "Walrus" as in a Pascal or Golang assign)
:: "Scope"
== "Is" (comparison), "Gets" (assignment, rare)
!= "Isn't"
<= "Less-Ek" or "Less than"
>= "Big-Ek" or "Greater than"
=> "Fat comma"
<< "Much less", "shift left"
<<< "Rotate left"
>> "Append", "shift right"
>>> "Rotate right"
=~ "Kinda like"
!~ "Not like"
$? "Huh?"
$! "Wow"
etc "Etsy"
www "Dub dub dub"
() "Nothing" in list contexts
Special operators, common in Perl but used in shells too
Operator Nickname Function
0+ Venus
numification
@{[ ]} Turtle or Babycart
list interpolation
!! Bang bang
boolean conversion
~~ Inchworm
scalar
~- Inchworm on a stick
high-precedence decrement
-~ Inchworm off a stick
high-precedence increment
-+- Space station
high-precedence numification
=( )= Saturn
scalar / list context
=< >=~ Flaming X-Wing
match input, assign captures
~~<> Kite
a single line of input
}{ Eskimo greeting
END block for one-liners
-=! -=!! Flathead
conditional decrement
+=! +=!! Phillips
conditional increment
x=! x=!! Pozidriv
conditional reset to ''
*=! *=!! Torx
conditional reset to 0
,=> Winking fat comma
non-stringifying fat comma
()x!! Enterprise (as in NCC-1701)
boolean list squash
0+!! Truthkey
numeric boolean conversion
~~!! Serpent of truth
numeric boolean conversion
||() Abbott and Costello
remove false scalar from list
//() Leaning Abbott and Costello
remove undef from list
Constant Nickname Value
<=><=><=> Space fleet 0
<~> Amphisbaena $ENV{HOME}