Вам необходимо:
eval alias bar="\"echo $foo\""
или просто:
eval alias bar=\"echo $foo\"
Смысл состоит в том, чтобы передавать двойные кавычки как буквальные кавычки команде eval
.Вы можете проверить, как Bash
будет анализировать данную команду, используя Управление - Alt - e связывание клавиш, которое вызывает shell-expand-line
, сначала введя команду:
eval alias bar="\"echo $foo\""
И затем выполнить связывание клавиш вместо Введите .Обратите внимание, что если набрано eval alias $foo="echo $foo"
, это отображается:
eval alias bar=echo bar
, но когда набирается eval alias bar=\"echo $foo\"
, это отображается:
eval alias bar="echo bar"