我正在使用节点
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
字符。