BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

Linuxでのteeコマンド–分割シェル出力[例]

ティー Linuxシェル/コマンドラインのコマンドは、アプリケーションの出力を分割し、ファイルの両方に出力を送信します。 STDOUT (コンソールまたは別のアプリケーション)。使用方法は次のとおりです。

ティー コマンドは、配管で使用されるTスプリッター、つまり単一の水源から2つの方向に水を向け直すパイプにちなんで名付けられました。

teeコマンド構文

ティー は、単純な目的と単純な構文を持つコマンドです:

tee OPTIONS FILE

注:

  • オプション 以下の表のオプションのリストです
  • ファイル 出力を保存するファイルへのパスです
  • 入力はパイプで送信するか、ティーにリダイレクトする必要があります。それ以外の場合、入力は機能しません
    • これは、標準の入力/出力をリダイレクトすることによって行われます。例については、以下を参照してください
  • ティー 提供されたデータを両方のファイルに出力します 指定およびSTDOUT (標準出力)
    • デフォルトでは、これはコンソールに出力されますが、他のアプリケーションにリダイレクトすることもできます

オプション

ティーで最も一般的に使用されるオプションは次のとおりです。 コマンド:

-a、–append 指定されたファイルに追加します。上書きしないでください
-i、–ignore-interrupts 割り込み信号を無視する

エラーの診断方法など、その他のオプションについては、次のコマンドを実行してユーザーマニュアルを表示できます。

man tee

ティー コマンドの例

teeの簡単な例を次に示します。 使用できます。

これらの例はすべて、エコーを使用しています。 コマンド。指定されたテキストを出力するだけです。

コマンドからの出力を表示して新しいファイルに保存する

echoの出力 コマンドはteeにパイプされ、ファイルに保存され、コンソールに出力されます:

echo "hello!" | tee hello.txt

ファイルの場合hello.txt 存在する場合は上書きされます。

コマンドからの出力を表示して既存のファイルに保存する

この例は上記と同じですが、既存のファイルを上書きするのではなく、ファイルの最後に追加します。

echo "hello again!" | tee -a hello.txt

出力を複数のファイルに保存または追加する

複数のファイルをスペースで区切って指定できます:

echo "hello several files!" | tee hello1.txt hello2.txt hello3.txt

リダイレクト/パイプティー 出力

teeの標準出力 パイプおよびリダイレクトできます。次の例では、echoの出力をhello.txtに保存します。 次に、出力が grepに渡されます。 コンソールに出力するのではなく、コマンド:

echo "hello!" | tee hello.txt | grep hello

たとえば、grepコマンド(テキスト入力の検索に使用)は、teeからの出力で「hello」という単語を検索するだけです。

割り込みを無視する

割り込みを無視すると(たとえば、CTRL + Cを押してコマンドを終了する)、 teeからの出力がよりクリーンになる可能性があります。 :

echo "hello!" | tee -i hello.txt

teeの使用 sudo

sudo commandを使用すると、rootとしてログインせずにrootユーザーとしてコマンドを実行でき、一般的に使用されます。

次のスニペット– sudo しません sudo のように、コマンドの出力をリダイレクトできます。 コマンド自体は、リダイレクト記号(> )の前に表示されるリダイレクトを実行しません ):

sudo echo "hello!" > /root/hello.txt

/root が原因で、これは権限エラーで失敗します ディレクトリにはroot権限が必要ですが、 sudo コマンドは、これらの権限を echoにのみ適用します コマンド–後で来るリダイレクトではありません。

これを回避する秘訣は、ティーを使用することです。 コマンド:

echo "hello!" | sudo tee /root/hello.txt

echo の出力があるため、これは機能します コマンドがteeに渡されます 、 sudoを介して管理者権限で実行されている –およびティー 出力を保存します。


  1. Linuxシェルプログラミングの数学的側面–パートIV

    この投稿では、S criptsについて説明します。 数学から および番号 視点。もっと複雑なスクリプトを投稿しましたが(シンプルな電卓 )前回の投稿でしたが、ユーザーの側では理解するのが難しかったので、小さなパケットで学習することのもう1つの便利な側面を人々に学んでもらうことを考えました。 この記事の前に、シェルスクリプトシリーズの3つの記事 公開されており、次のとおりです。 Linuxシェルと基本的なシェルスクリプトを理解する–パートI シェルプログラミングを学ぶための5つのシェルスクリプト–パートII Linux BASHスクリプティングの世界を航海する–パートIII

  2. ファイルとディレクトリを一覧表示するLinuxのlsコマンド

    ls Linuxのコマンドは、おそらく最初に使用する必要のあるコマンドの1つです。この記事では、コマンドと一般的に使用されるパラメータについて説明します。 私が好むオプションのセットは次のとおりです。 ls -Zaltrh 各オプションを個別に掘り下げて、オプションのグロブ全体が役立つ理由を説明しましょう。 LinuxLSコマンド構文 #ls [OPTION] [FILE] OPTIONS: [-a], do not ignore entries starting with . or .. [-h], with -l, print sizes in human readable form