'vagrant ssh -c COMMAND'行为与'vagrant ssh'会话中运行命令不同

时间:2014-07-28 03:21:43

标签: bash ssh gruntjs vagrant

这有效:

vagrant ssh
cd /vagrant && grunt build

这不是:

vagrant ssh -c 'cd /vagrant && grunt build'

(退出bash: grunt: command not found

为什么?

我问的原因是我有一个将脚本部署到GitHub页面的shell脚本,我想在开始时添加一个构建步骤,以便在部署之前获得新的构建。

我还尝试编写一个shell脚本vagrant_build.sh,如:

cd /vagrant
grunt build

让vagrant用vagrant ssh -c 'bash /vagrant/vagrant_build.sh'运行它,但它仍然无法找到grunt

文档说vagrant ssh -c COMMAND只运行一个命令,我是否需要从字面上理解100%?我把它解释为“你可以在终端的一行中放入任何东西”。

1 个答案:

答案 0 :(得分:5)

因为grunt不在vagrant的路径中。所以给它绝对的路径。

cd /vagrant && /path/to/grunt build