Vagrant ssh - 命令不工作

Joh*_*911 7 ssh vagrant homestead

我正试图将一个简单的命令传递给流浪汉机器.

vagrant ssh -c "mysql -u root -e'CREATE DATABASE testing';"
Run Code Online (Sandbox Code Playgroud)

db不会被创建.相反,我只是通过ssh'登录'到流浪汉机器.

我跑的时候也会发生同样的事情

vagrant ssh -c "touch test.txt"
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

  • 命令周围的单引号
  • --command 而不是速记 -c

有什么想法发生了什么?

编辑

我将发布我的脚本,它将我的脚本与Homestead集成,因此无法真正调整流浪汉配置.

编辑

因为我使用Homestead,所以用户和pw是不同的.它应该是

vagrant ssh -c "mysql -u homestead -psecret -e'CREATE DATABASE testing;'"
Run Code Online (Sandbox Code Playgroud)

不要更改上面的代码,以避免与已提交的答案混淆.

但是,这并没有解决问题.如上所述,正在发生同样的事情.

Kei*_*son 9

这有效

vagrant ssh -- -t 'touch test.txt'
Run Code Online (Sandbox Code Playgroud)

标志-t为bash创建一个伪tty来使用.这是对这个问题的答案的变体.

在vagrant ssh之后运行远程命令

这里有更详细的解释.

https://unix.stackexchange.com/questions/119894/single-command-to-login-to-ssh-and-run-program/119899#119899