Backticks vs braces in Bash Backticks vs braces in Bash bash bash

Backticks vs braces in Bash


The `` is called Command Substitution and is equivalent to $() (parenthesis), while you are using ${} (curly braces).

So all of these expressions are equal and mean "interpret the command placed inside":

joulesFinal=`echo $joules2 \* $cpu | bc`joulesFinal=$(echo $joules2 \* $cpu | bc)#            v                          v#      ( instead of {                   v#                                 ) instead of }

While ${} expressions are used for variable substitution.

Note, though, that backticks are deprecated, while $() is POSIX compatible, so you should prefer the latter.


From man bash:

Command substitution allows the output of a command to replace thecommand name. There are two forms:

          $(command)   or          `command`

Also, `` are more difficult to handle, you cannot nest them for example. See comments below and also Why is $(...) preferred over ... (backticks)?.


They behave slightly differently in specific case:

$ echo "`echo \"test\" `"test$ echo "$(echo \"test\" )""test"

so backticks silently remove the double quotes.