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 に答える