Shelljs exec命令不接受变量。我尝试了所有可能的组合,比如使用双引号,单引号,在变量前面赋值$等。下面是脚本:
#!/usr/bin/env node
require('shelljs');
for(let i = 0; i < data.length; i++)
{
let dev = data[i];
let platform_version = exec('adb -s $dev', {silent:false}).stdout;
}错误:找不到dev或添加了adb的所有帮助命令并打印出来。
有人能帮帮忙吗?谢谢
注意: adb是一个android工具。您可以使用任何简单的命令行,如echo等
发布于 2018-01-18 12:41:09
您不能像'adb -s $dev'那样在JavaScript中进行字符串插值。$dev变量不会被它的值替换。您可以改用+运算符来形成字符串。请参阅下面的代码。
let platform_version = exec('adb -s ' + dev, {silent:false}).stdout;注意:在ECMAScript 6中,您可以使用template literals获得类似的结果,因为它们允许字符串插值。模板文字写在`中(反引号)。这意味着代码`adb -s ${dev}`也应该提供所需的结果。
发布于 2018-01-20 05:50:59
使用模板文字我们可以解决这个问题。但在变量中有一个小的变化。
let platform_version = exec(`adb -s ${dev}`, {silent:false}).stdout;需要使用花括号将变量括起来,以获得所需的结果。
https://stackoverflow.com/questions/48313762
复制相似问题