2

プロセスの時間をファイルにリダイレクトしたいのですが、プロセス自体がファイルにリダイレクトされます。これが私が試したことです:

time &> ltime.txt echo | ls -l > ls-l.txt

両方のファイル (ltime.txtおよびls-l.txt) が作成されますが、ltime.txt空です。

timeそれでも画面に出力されますが、これは私の場合は問題ありませんが、次の理由により、そうしない&>と予想していました。

    real    0m0.034s
    user    0m0.000s
    sys     0m0.004s

(これについて私が知っていることはすべてhttp://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.htmlから得たものです)

助言がありますか?

4

2 に答える 2

1

timeたぶん、シェルに組み込まれている に噛まれていますか?これを試して:

/usr/bin/time ls -l > ls-l.txt 2> ltime.txt

からman time:

   Users of the bash shell need to use an explicit path in order to run
   the external time command and not the shell builtin variant.

【追記更新しました】

どうやらの場所timeは完全に標準ではありません。1 回限りの使用 (および一般的な情報) のwhich time場合は、それがどこにあるかがわかります。移植可能なスクリプトの場合は、command time .... (commandシェルにビルトインを無視するように指示するシェルビルトインです。)

于 2013-10-15T17:48:28.813 に答える
1

試す

{ time ls -l > ls-l.txt ; }  &> ltime.txt 

中括弧は、ビルトインでも出力をキャプチャします。

于 2013-10-15T20:08:16.020 に答える