Unquoted Strings

In the argument-space of a command, when shell encounters a character that is:

  • Not a quote or back-tick (" or ' or ` )

  • Not a parentheseis, bracket, or brace ((/), [/], or {/})

  • Not an Internal Field Separator found in the $IFS built-in variable

shell starts creating a string using these rules:

  1. A quote starts a compound string (e.g., c"'est magnifique")

  2. Escape sequences may be expanded (e.g., \" is translated to ")

  3. Variables are expanded (e.g., $foo becomes contents of foo variable)

  4. Command substitutions are performed (e.g., $(date) and `date` become the output of date command)

  5. A tilde (~) followed by nothing or a forward-slash (/) becomes the path to the current user's home directory

Last updated