当前位置: 首页 > 面试题库 >

如何在节点中为Shell命令转义字符串?

沈茂
2023-03-14
问题内容

在nodejs中,执行外部命令的唯一方法是通过sys.exec(cmd)。我想调用一个外部命令,并通过stdin给它提供数据。在nodejs中,似乎还没有打开命令然后将数据推送到其中的方法(仅执行并接收其standard
+ error输出),因此,看来我现在要做的唯一方法是通过单个字符串命令,例如:

var dangerStr = "bad stuff here";
sys.exec("echo '" + dangerStr + "' | somecommand");

对此类问题的大多数答案都集中在正则表达式上(不适用于nodejs(使用Google的V8
Javascript引擎)对我来说不适用)或其他语言(如Python)的本机功能。

我想逃避angersStr,以便安全地编写一个上面的exec字符串。如果有帮助,dangerStr将包含JSON数据。


问题答案:

有一种写外部命令的方法:process.createChildProcess(documentation)返回带有write方法的对象。createChildProcess并不是很方便,因为它不缓冲stdout和stderr,因此您将需要事件处理程序来分块读取输出。

var stdout = "", stderr = "";
var child = process.createChildProcess("someCommand");

child.addListener("output", function (data) {
    if (data !== null) {
        stdout += data;
    }
});
child.addListener("error", function (data) {
    if (data !== null) {
        stderr += data;
    }
});
child.addListener("exit", function (code) {
    if (code === 0) {
        sys.puts(stdout);
    }
    else {
        // error
    }
});

child.write("This goes to someCommand's stdin.");


 类似资料:
  • 问题内容: 我正在使用JSCH -SSH库在“ shell”通道中执行命令,但找不到找到两种方法的方法: 1)如何查找命令是否在远程unix box上完全执行? 2)如何在String中捕获命令输出,而不是在System.out控制台上打印它? 下面是我的代码片段,可以在system.out上显示shell命令输出 注意:我不想使用“ exec”通道,因为它为每个命令启动一个新进程,并且不记得已导

  • 问题内容: 我正在尝试读取AT命令的结果(执行该命令以从控制台对GSM调制解调器执行各种操作)。我已经看到并使用Java OuputStream类成功进行了测试,以将AT命令的结果作为输出流获取,但是我要做的不是将结果作为输出流获取,而是获取到类中的变量(目前为String)中。 如果有可能喜欢 效果很好,怎么可能做这样的事情 我正在以这种方式尝试 但是为了获得结果,我想要像这样的字符串来获取at

  • 如何将字符串(字节字符串)转换为字节(字节字符串),而不必手动复制和粘贴字符串并在其前面放置b?

  • 我有一个函数,我在其中创建一个Node并将其text Content设置为一个特殊字符,例如项目符号(•)。这个函数在xsl: Application-template中调用。但是,输出转义了特殊caracter,而不是看到项目符号,出现在我的结果中。在做了一些研究后,我还没有找到任何方法来禁用从我的节点转义。我的论点是创建的节点是一个CDATA部分,但我如何恢复它? 这是我用来创建节点的代码:

  • 问题内容: 如何在python中将字节字符串转换为int? 这样说: 我想出了一个聪明/愚蠢的方法: 我知道必须有内置的东西或在标准库中可以更简单地执行此操作… 这与转换可以使用int(xxx,16)的十六进制数字字符串不同,但是我想转换为实际字节值的字符串。 更新: 我有点喜欢James的回答,因为它不需要导入另一个模块,但是Greg的方法更快: 我的骇客方法: 进一步更新: 有人在评论中问导入

  • 本文向大家介绍如何在Python 3中将字符串转换为字节?,包括了如何在Python 3中将字符串转换为字节?的使用技巧和注意事项,需要的朋友参考一下 要在Python 3中将字符串转换为字节,可以使用string类中的函数。例如,