考虑以下:
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
在这里进行语法正确的方法是什么?
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}'
这没有任何意义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句