我不明白为什么 Vagrantfile shell 配置脚本中的别名定义不起作用。
这是我的 Vagrantfile(一部分):
config.vm.provision "shell", inline: <<-SHELL
# this works
#echo 'alias pa="php artisan"' >> ~/.bash_aliases && source ~/.bash_aliases
# this doesn't
alias pa="php artisan"
# in order to be able to do this
pa migrate --seed
SHELL
如果我通过 SSH 连接到来宾并创建一个带有 alias="command" 的别名,我可以立即使用该命令。但是从 shell 脚本执行相同的操作是行不通的。
我在这里缺少什么?
Fravadona 指出,您不能在非交互式 shell 中使用别名。但你可以创建一个函数。所以,这个解决方案有效:
pa() { php artisan "$@"; }