«Переменные гораздо более универсальны, чем псевдонимы» - не совсем верно!
Для выполнения команд переменные имеют некоторые ограничения, которые не используются псевдонимами.
Попробуйте использовать переменную, чтобы определитькоманда, которая отображает одну звездочку в командной строке:
$ myCommand="echo *"
$ $myCommand
file1.x file2.y file3.z
* Расширена * - это не то, что вы хотели - так что попробуйте это:
$ myCommand="echo \"*\""
$ $myCommand
"*"
Но сейчасу вас появляются дополнительные кавычки - вы тоже этого не хотели!
Но это работает нормально:
$ echo "*"
*
И вот так:
$ alias myCommand="echo \"*\""
$ myCommand
*
Этопотому что кавычки внутри переменной обрабатываются как литеральные, а не синтаксические при раскрытии переменной - так что в этом случае они становятся частью параметра, который передается команде echo - тогда как с псевдонимом команда выполняется "как есть" икавычки обрабатываются как синтаксические и анализируются перед вызовом echo, так же, как и при вводе одной и той же команды непосредственно из командной строки.