2

我正在运行任务 "grunt-ssh" github/ssh,它工作正常,除了 cd 命令,这是我的代码:

  grunt.initConfig({
      sshexec: {
          connect: {
            command: ['ls'],
            options: {
            host: 'some_host',
            username: 'user',
            password: 'pass'
         }
     }
 });

例如,输出为:/folder1、/folder2、/etc、/etc

但是当我使用例如运行相同的任务时:

command: ['cd /', 'ls'],

(它的输出应该是:/root、/foldera、/folderb、/etc、/etc),但我得到的是相同的:/folder1、/folder2、/etc、/etc 似乎是命令“cd / “我没有被处决。

有任何想法吗?

4

1 回答 1

2

我怀疑该cd命令执行,但不会影响后续命令。它作为自己的进程执行,因此一旦完成,下一个进程就会在完全相同的目录中开始。

这应该有效:

        command: ['sh -c "cd /; ls"'],
于 2014-11-05T18:02:16.203 回答