我有一个非常复杂的命令。
openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | base64
我查看了node.js文档,发现管道运算符转换为两个不同的生成命令(here, second example)。但是“ <”运算符一无所知,我也不知道如何将此嵌套命令转换为spawn语句。我该怎么办?
答案 0 :(得分:0)
我找到了解决方案。基本上将您的一个或多个命令包装到一个bash脚本(.sh文件)中,然后使用bash命令生成该文件。
例如:
rnd.sh file
--------------------------
#!/usr/bin/env bash
openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | base64
在您的node.js脚本中生成该脚本,然后运行
rnd.js file
--------------------------
const spawn = require('child_process').spawn;
const sp = spawn('bash', [__dirname + '/rnd.sh']);
sp.stdout.on('data', function(data){
// process stdout
}