В общем я добился от автора объяснения, что ему нужно
например при использовании значении переменной например good=bad далее выполнив команду echo $good
То о чем ты говоришь, называется не команда, а
переменная. Это и сбило всех с толку.
Объяснение очень простое.
Поскольку в баше ОЧЕНЬ нестрогий синтаксис, и любой текст воспринимается как строка без всяких кавычек, то нужен способ отличить переменную от просто строки. Если ты напишешь
good=bad
echo good
то как система поймет, ЧТО ты хочешь вывести - строку good или переменную good?
поэтому тут без вариантов - переменную надо как-то отличать от остального текста. Это и делает знак доллара
При этом для присвоения значения переменной знак доллара не нужен, поскольку система видит по знаку =, что речь идет о присвоении (и видимо поэтому нельзя ставить проблелы вокруг знака =).
Да, нелогично. Но не все в нашей жизни поддается логике