我有一个带有LAMP堆栈和YiiFramework的vagrantbox。 我需要运行一些依赖于环境变量的命令,我在.bashrc中设置了框。(.profile具有相同的行为)。 问题是我想用ssh启动它们,但我尝试的一切都无法正常工作。例如:
vagrant ssh -- -t '[path]/./yiic command action'
告诉我,我没有设置env变量。 甚至:
vagrant ssh -- -t 'printenv MYSQL_HOST'
有这个输出:
rmessineo:~ rmessineo$ switebox ssh -- -t 'printenv MYSQL_HOST'
Connection to 127.0.0.1 closed.
rmessineo:~ rmessineo$
但当然,如果我登录并注册相同的内容:
rmessineo:~ rmessineo$ vagrant ssh
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Feb 24 11:02:05 2016 from 10.0.2.2
vagrant@debian-jessie:~$ printenv MYSQL_HOST
127.0.0.1
vagrant@debian-jessie:~$
有什么想法吗?
答案 0 :(得分:0)
假设vagrant实例以端口2222
开头,那么您可以运行命令:
ssh -p 2222 vagrant@127.0.0.1 'printenv MYSQL_HOST'
密码为vagrant
,然后您应该得到结果。
根据真正的流浪者实例更新端口。
答案 1 :(得分:0)
我在VM的.profile
文件中添加了以下内容
export MY_VAR="hello fred"
然后我可以通过运行
来获取新变量的值fhenri@machine:~/project/examples/vagrant/ubuntu$ vagrant ssh -- -t 'source ~/.profile && printenv MY_VAR'
hello fred
Connection to 192.168.6.120 closed.