Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js shell命令在nodejs ssh2上不起作用_Node.js_Bash_Shell_Libssh2 - Fatal编程技术网

Node.js shell命令在nodejs ssh2上不起作用

Node.js shell命令在nodejs ssh2上不起作用,node.js,bash,shell,libssh2,Node.js,Bash,Shell,Libssh2,我正在使用以下库执行以下操作: 登录到altus实例 转到目录 这是我的代码: function postRun(url){ ssh.runMultiple(server, "sudo docker exec -it abcas /bin/bash", function(err,stdout,stderr,server,conn){ if(err) console.log(err); stdout.on('data', functi

我正在使用以下库执行以下操作:

  • 登录到altus实例
  • 转到目录
  • 这是我的代码:

    function postRun(url){
            ssh.runMultiple(server, "sudo docker exec -it abcas /bin/bash", function(err,stdout,stderr,server,conn){
                if(err) console.log(err);
                stdout.on('data', function(data){
                    executeCommands();
    
                });
                stderr.on('data', function(data){
                    console.log(''+data);
                });
                stdout.on('close',function(data){
                    conn.end();
                });
            });
    }
    
    function executeCommands(){
            ssh.runMultiple(server, ['cd /dependencies/scripts'], function(err,stdout,stderr,server,conn){
                if(err) console.log(err);
                stdout.on('data', function(data){
                    ssh.exec(server, 'pwd', function(err,stdout,stderr){
                        if(err) console.log(err);
                    });
                });
                stderr.on('data', function(data){
                    console.log(''+data);
                });
                stdout.on('close',function(data){
                    conn.end();
                });
            });
    }
    
    我得到以下错误:

    bash:line 0:cd:/dependencies/scripts:没有这样的文件或目录

    我不确定我做错了什么。我在某个地方读到,我需要更换外壳,但看起来我已经在bash中了


    我缺少什么,请说明。

    cd/”表示它指向根目录,因此您必须指定从根目录到父目录的完整路径。

    您试图输入一个不存在的目录。不要为此责备SSH或节点。。。错误消息告诉您SSH命令执行本身确实有效,但结果不成功(即非零返回代码)。验证路径/依赖项/脚本是否存在。错误来自bash,而不是ssh。看看是否可以从命令行下载cd/依赖项/脚本。。目录已存在,我可以将cd刻录到目录中@marekful这就是让我恼火的地方:-(我花了几个小时试图弄清楚发生了什么,我放弃了:-(我明白你的意思..问题是,目录确实存在。但是当我从另一个linux框中执行
    postRun()
    时..它应该进入
    “内部”
    docker实例,然后执行
    “cd”
    但它确实是从外盒中取出的
    cd
    。(不在docker内)…不确定应该如何解决此问题..我应该使用
    ssh.runMultiple吗?
    一个常见的初学者错误是不理解斜杠的意义。目录
    /dependencies
    是否确实存在于根目录中?还是希望在主目录中找到一个目录
    dependencies
    (注意缺少前导斜杠)?