0

我在尝试捕获简单命令的输出时遇到了一些问题:

$timeTotal = `echo $timeTotal + $time | bc -l`;

但我收到以下错误:

sh: +: not found
sh: Syntax error: "|" unexpected

此命令在 bash 中完美运行,但似乎 sh 正在实际使用。一开始我认为问题在于管道的使用(尽管总和也没有得到很好的解释)。让我感到困惑的是,同一脚本中的以下命令不会导致错误并且可以正常工作:

my $time = `cat $out.$step | bc -l`;

有什么建议么?

4

2 回答 2

6

$timeTotal包含不应该的尾随换行符,因此您正在执行

echo XXX

+ YYY | bc -l

代替

echo XXX + YYY | bc -l

你肯定错过了chomp某个地方。

您的命令中还有一个不合适的双引号。

于 2012-09-21T19:20:48.967 回答
-4

反引号已弃用。请改用qx(..)语法。

$timeTotal = qx(echo $timeTotal + $time | bc -l");
于 2012-09-21T20:27:41.093 回答