插入变量时节点子进程执行命令失败

问题描述 投票:0回答:1

我正在使用节点

child-process
及其
exec
功能,如下所示。

async function run (input: any) {
  console.log("======" + input)
  const ret = await exec(input, { cwd: 'src/lib/utils' });
  const output = {stdout: ret.stdout, stderr: ret.stderr, error: ret.error}
  return output
  // return ret.stdout, ret.stderr, ret.error
}

基本上需要一个类似这样的命令来运行Linux命令

curl

curl 'https://localhost:8289/v1/request' \
    --header 'Content-Type: application/json' \
    -H "Authorization: Bearer $(<token)" \
    --data '{
         "request": "'"$(<data)"'"
    }' -k -s 

我需要插入一些变量,即

token
和一些数据。然而,由于数据是 JSON,我需要包含一些额外的字符以进行转义。该命令在命令行中工作正常,但是当使用
child-process exec
调用它时,它会失败并出现此错误。

{"message":"Syntax error: offset=59, error=invalid character '\\n' in string literal"}

如果我包括 $(

好吧,我的问题与我使用

echo
命令创建变量的方式有关。由于某种原因
echo
从字符串中删除了所有
\n
字符。

node.js child-process
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.