0

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;
}

error : dev not found 或者添加了 adb 的所有帮助命令并打印出来。

有人可以帮忙吗?谢谢

注意:adb 是一个安卓工具。您可以使用任何简单的命令行,例如 echo 等

4

2 回答 2

2

您不能在 JavaScript 中进行字符串插值,例如'adb -s $dev'. 该$dev变量不会被其值替换。您可以改用+运算符来形成字符串。请参阅下面的代码。

let platform_version = exec('adb -s ' + dev, {silent:false}).stdout;

注意:在 ECMAScript 6 中,您可以使用模板文字来获得类似的结果,因为它们允许字符串插值。模板文字写在`(反引号)内。这意味着代码`adb -s ${dev}`也应该给出预期的结果。

于 2018-01-18T04:41:08.587 回答
1

使用模板文字我们可以解决这个问题。但是变量有一个小的变化。

let platform_version = exec(`adb -s ${dev}`, {silent:false}).stdout;

需要使用大括号中的变量来获得所需的结果。

于 2018-01-19T21:50:59.103 回答