スクリプトのすべての出力をファイルとしてキャプチャします(スクリプト自体から)。

スクリプトのすべての出力をファイルとしてキャプチャします(スクリプト自体から)。

さまざまなコマンドを呼び出していくつかの出力を印刷するbashスクリプトがあります(たとえば、独自に呼び出されるコマンドとスクリプト自体git pullによって生成された情報メッセージの両方Operation took XX minutes)。

出力全体をファイルにキャプチャしたいです。スクリプト自体から./myscript.sh | tee file.txt:基本的に電話をかける必要がないようにしたいです。ここでは関係ありません理由。

基本的に私は次のことをしたいと思います。

startCapture

git pull

echo "Text"

other-command

endCapture

また、スクリプトの実行中に出力をシェルに印刷する必要があります。

究極の目標は次のとおりです。

  1. ./myscript.sh実行に追加のシェル構造は必要ありません。
  2. 今やっているように端末の出力を見てください。
  3. フル出力を含むディスクにファイルをインポートする

可能ですか?

ベストアンサー1

いつでもscriptスクリプト内で呼び出してすべてを記録できます。

bashスクリプトからすべてを同時に印刷して記録する場合log.txt

#!/bin/bash

if [ -z "$SCRIPT" ]
then 
    /usr/bin/script log.txt /bin/bash -c "$0 $*"
    exit 0
fi

echo teste

ログを確認してくださいlog.txt

$ ./a.sh
Script started, output file is log.txt
teste

Script done, output file is log.txt
$ cat log.txt
Script started on Fri Feb 16 17:57:26 2018
command: /bin/bash -c ./a.sh 
teste

Script done on Fri Feb 16 17:57:26 2018

おすすめ記事