在环境变量

时间:2016-02-24 11:05:58

标签: bash yii ssh vagrant

我有一个带有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:~$ 

有什么想法吗?

2 个答案:

答案 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.