Ответ 1
''
Называется Command Substitution и эквивалентно $()
(скобки), в то время как вы используете ${}
(фигурные скобки).
Таким образом, они равны и означают "интерпретировать команду, размещенную внутри":
joulesFinal='echo $joules2 \* $cpu | bc'
joulesFinal=$(echo $joules2 \* $cpu | bc)
^ ^
( instead of { ) instead of }
Хотя выражения ${}
используются для замены переменных.
От man bash
:
Подстановка команды позволяет выводить команду на замену имени команды. Существуют две формы:
$(command) or 'command'
Кроме того, ''
сложнее справиться, вы не можете их вложить, например. См. Комментарии ниже и также Почему $ (...) предпочтительнее ...
(backticks)? ,