Проблема не имеет ничего общего с псевдонимами. Просто работает
$ TEST=ok echo $TEST
$
ничего не выводит (кроме новой строки), так как $ TEST раскрывается оболочкой до запуска команды echo.
В этом утверждении происходит три вещи в следующем порядке:
$TEST
расширен
TEST
назначен 'ok'
echo
выполняется (с TEST = ok в его среде)
Если поставить точку с запятой между присваиванием и командой echo, как предложено ghostdog74 (TEST=ok ; echo $TEST
), назначение будет отдельной командой оболочки, выполняемой перед командой echo. Затем оболочка может развернуть $TEST
во второй команде, поскольку она уже установлена.