我在尝试捕获简单命令的输出时遇到了一些问题:
$timeTotal = `echo $timeTotal + $time | bc -l`;
但我收到以下错误:
sh: +: not found
sh: Syntax error: "|" unexpected
这个命令在bash中运行得很好,但实际上似乎正在使用sh。在一开始我认为问题是管道使用(虽然总和没有得到很好的解释)。令我困惑的是,同一脚本中的以下命令不会导致错误并且正常工作:
my $time = `cat $out.$step | bc -l`;
有什么建议吗?
答案 0 :(得分:6)
$timeTotal
包含不应该的尾随换行符,因此您正在执行
echo XXX
和
+ YYY | bc -l
而不是
echo XXX + YYY | bc -l
你肯定错过了chomp
某个地方。
你的命令中还有一个不合适的双引号。
答案 1 :(得分:-4)
不推荐使用反引号。请改用qx(..)
语法。
$timeTotal = qx(echo $timeTotal + $time | bc -l");