If a value is a single word with no special characters, you don't need to escape anything. Certain characters are reserved as special characters though for parameters since they demarcate the beginning and end of the actual parameter and you'll need to escape them properly. These rules apply the same to named and positional parameters.
If a parameter has any white space in it, you'll need to wrap the value in single or double quotes. It doesn't matter which kind you use and it can vary from one parameter to another as long as they match properly.
echo 'Hello World' echo "Good Morning Vietnam"
Quotes are actually allowed unescaped in a value like so:
However, if the parameter contains whitespace and is surrounded by quotes, you'll need to escape them with a backslash.
echo 'O\'reilly Auto Parts' echo "Luis \"The Dev\" Majano"
Hint Only like quotes need to be escaped. Single quotes can exist inside of double and vice versa without issue. These examples below are perfectly valid.
echo "O'reilly Auto Parts" echo 'Luis "The Dev" Majano'
Backticks are used in parameter values to demarcate an expression to be parsed. Escape them with a backslash. All backticks need escaped regardless of whether they are encased on single or double quotes.
echo "Nothing to \`see\` here"
If you have an equals sign in your value, you'll need to escape it with a backslash unless you've quoted the entire string.
echo 2+2\=4 echo "2+2=4"
A new line can be specified with the text
\n. Keep in mind, some parameters might not expect new lines to exist and could error.
package set description="first line\nSecond Line\nThird Line"
A tab character can be specified with the text
Since the backslash is used as our escape character you'll need to escape any legitimate backslash that happens to precede a single quote, double quote, equals sign, or letter n.
This will print