2

Mac で計測器を実行しており、出力をファイルにリダイレクトしたいと考えています。

以下は私が使用しているコマンドです:

instruments -t "$AUTOMATION_TEMPLATE" "${APP_UNDER_TEST}" -e UIASCRIPT "AppTests/Automation/iPhone/MemLeaksTest.js" >> ${INSTRUMENTS_LOG_FILE}

ここで、${INSTRUMENTS_LOG_FILE} を追跡すると、シミュレーターのアプリケーションが閉じるまで、ログの最後の部分が遅れていることがわかります。つまり、計測器が終了すると、ログがログ ファイルに書き込まれます。

リダイレクトのバッファ サイズを強制的に 0 にしたい、つまり、すぐにファイルにログインしたい。

これどうやってするの?

ありがとう

4

1 に答える 1

0

OSXにはまたはがありますunbufferstdbuf


Linux システムの /usr/bin/unbuffer の内容は次のとおりです。

#!/bin/sh
# -*- tcl -*-
# The next line is executed by /bin/sh, but not tcl \
exec tclsh "$0" ${1+"$@"}

package require Expect


# -*- tcl -*-
# Description: unbuffer stdout of a program
# Author: Don Libes, NIST

if {[string compare [lindex $argv 0] "-p"] == 0} {
    # pipeline
    set stty_init "-echo"
    eval [list spawn -noecho] [lrange $argv 1 end]
    close_on_eof -i $user_spawn_id 0
    interact {
    eof {
        # flush remaining output from child
        expect -timeout 1 -re .+
        return
    }
    }
} else {
    set stty_init "-opost"
    set timeout -1
    eval [list spawn -noecho] $argv
    expect
    exit [lindex [wait] 3]
}
于 2012-12-17T13:13:43.530 に答える