2016-05-08 15 views
3

私はCIツールを改善しようとしているので、git cloneコマンドの出力をキャプチャしようとしています。これは私を狂わせてしまいます。私は、その後、標準出力に(出力にはgitで進行状況を使用)標準エラー出力をリダイレクトしてい2>&1git cloneをパイプする方法

git clone --progress https://github.com/$REPO.git $FOLDER 2>&1 | xargs echo - 

シナリオを簡単にするために、私はこの単純なコマンドに問題を軽減しますそれをxargs echo -にパイプしようとしています。私の実際の生活のシナリオでは、xargs echoは何かに置き換えられます。

実際のコンソールに接続されていなくても、gitを冗長にするために--progressを使用しています。

私の予想される出力は次のようになります。

- Cloning into 'a3'... 
- remote: Counting objects: 54130, done. 
- remote: Compressing objects: 100% (520/520), done. 

私の出力ではなく、絶対に何もありません。 OSX 10.11でこれをテストしています。

誰でもそのコマンドに間違いがあることを知っていますか?

ありがとう非常にありがとうございます。

+0

を使用して、それを解決し、それだけですべて終わりに来るのでしょうか? – Mort

答えて

1

私はあなたが何かを得ることはありませんか、またはあなたはそれをリアルタイムで得ることはありません

git clone --progress --branch $TAG_VERSION https://github.com/$REPO ./ 2>&1 | tr '\u000D' '\n'" 
0

あなたのコマンドは私の仕事です。それは、 "Repo ...リモートへのクローニング"のようなものを出力します。私はあなたのシステムが出力バッファリングのために出力をキャプチャできないと思います。

各レコードの後に​​、フラッシングをオンにしてください(を環境変数1に設定してください)。また、git cloneコマンドのバッファリングをオフにする:あなたはこれを使用することができます

repo='your-repo-uri' 

while read -r l; do 
    echo "<<<<<<<<<<" 
    echo "$l" 
    echo ">>>>>>>>>>" 
done < <(GIT_FLUSH=1 stdbuf -i0 -o0 -e0 git clone --progress "$repo" 2>&1) 
0

git clone --progress url > clone.txt 2>&1 

トリックは、コマンドの最後の引数として2>&1を追加することです。
ターミナルに出力されたコマンドをすべて出力しますが、代わりに目的のファイルに書き込まれます。

enter image description here

関連する問題