如何在双引号内使用双引号

时间:2016-01-07 16:02:14

标签: javascript node.js

请考虑以下事项:

var child = require('child_process');
var res = child.execSync("df -l | awk '{t += $2} END {printf "%d G\n", t / 2^20 + 0.5}'");

我收到语法错误("中的printf在这里出错了。

我试图使用\"逃脱,但无济于事。

使用:"df -l | awk '{t += $2} END {printf \"%d G\n\", t / 2^20 + 0.5}'"

我明白了:

awk: cmd. line:1: {t += $2} END {printf "%d G
awk: cmd. line:1:                       ^ unterminated string

在这里进行语法正确的方法是什么?

1 个答案:

答案 0 :(得分:7)

var res = child.execSync("df -l | awk \'{t += $2} END {printf \"%d G\\n\", t / 2^20 + 0.5}\'");

工作,测试。

问题在于\n。它应该是\\n。您可以像这样调试任何shell任务: console.log(SHELL_COMMAND) 然后手动运行输出字符串。

例如,这个:

var child = require('child_process');
var cmd = "df -l | awk '{t += $2} END {printf \"%d G\n\", t / 2^20 + 0.5}'";
console.log(cmd)
var res = child.execSync(cmd);

将在控制台中输出并尝试运行:

df -l | awk '{t += $2} END {printf "%d G
", t / 2^20 + 0.5}'

没有任何意义。