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}