如何解决node.js exec命令引用
我在Linux上有此命令来获取我的IP地址:
connmanctl services ethernet_00142d000000_cable | sed -n -e '/IPv4 =/s/.*Address=\([^,]*\).*/\1/p'
我想在使用子进程的exec函数中使用它:
const exec = require('child_process').exec;
exec(' connmanctl services ethernet_00142d000000_cable | sed -n -e '/IPv4 =/s/.*Address=\([^,]*\).*/\1/p' ',(error,stdout,stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});
我什么也没有,我不知道如何执行带引号的命令。
感谢您的帮助
解决方法
最简单的选择之一是将命令用双引号引起来,但这可能会导致ESlint错误,因为混用了双引号和单引号。
const exec = require('child_process').exec;
exec(" connmanctl services ethernet_00142d000000_cable | sed -n -e '/IPv4 =/s/.*Address=\([^,]*\).*/\1/p' ",(error,stdout,stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});
另一个选择是使用模板文字: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
const exec = require('child_process').exec;
exec(` connmanctl services ethernet_00142d000000_cable | sed -n -e '/IPv4 =/s/.*Address=\([^,]*\).*/\1/p' `,stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。