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等
答案 0 :(得分:1)
你不能像$A4Y = 300;
$y = $pdf->GetY();
$x = $pdf->GetX();
while($products){
$pdf->SetY($y);
$pdf->SetX($x);
$pdf->multicell($wc=65,5,html_entity_decode($product_desc),0,'L');
$offsety1=$pdf->GetY();
if( ($A4Y-($offsety1+10)) < 48){
$pdf->AddPage();
$y = $pdf->GetY();
$x = $pdf->GetX();
}
}
那样在JavaScript中进行字符串插值。 'adb -s $dev'
变量不会被其值替换。您可以使用$dev
运算符来形成字符串。请参阅下面的代码。
+
注意:
在ECMAScript 6中,您可以使用Not generate PDF like this (Click to view image)来获得类似的结果,因为它们允许字符串插值。模板文字写在let platform_version = exec('adb -s ' + dev, {silent:false}).stdout;
(反引号)中。这意味着代码`
也应该提供所需的结果。
答案 1 :(得分:0)
使用模板文字,我们可以解决问题。但是变量的变化很小。
let platform_version = exec(`adb -s ${dev}`, {silent:false}).stdout;
需要使用在花括号中包装变量来获得所需的结果。