如何将--url选项的值作为参数传递给WGET命令
#!/usr/bin/env node
'use strict';
const commander = require('commander');
const { exec } = require("child_process");
const program = new commander.Command();
program
.option('-u, --url <value>', 'Website address');
program.parse(process.argv);
const options = program.opts();
if (options.url) {
exec("wget ${options.url}", (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
}
输出:
node app.js --url ff99cc.art
error: Command failed: wget ${options.url}
/bin/bash: line 1: ${options.url}: bad substitution
有必要将--url值作为wget的参数传递.因此,当您执行 node 命令app.js--url Example.com时,她正在执行wget Example.com.
Solved感谢Spyrospal和Ibrahim Tanyalin 问题是如何使用字符串插值法来格式化wget命令.如此处所述,应使用反号(`)字符,而不是双引号:
exec(`wget ${options.url}`, (error, stdout, stderr) => {