这有效:
%x{ ls }
但这不是:
%x{ l }
其中 l 是 ls 的别名。
有什么想法让它发挥作用吗?
youre spawning a non-interactive shell with no aliases loaded, to do that you have to
%x{
source /file/with/your/aliases
shopt -s expand_aliases
l
}
where '/file/with/your/aliases' is often ~/.profile or ~/.bashrc
您可以尝试使用Session gem之类的东西。原因是执行的子 shell 是受限且非交互的。