私はクラスの実践的な課題を実行していますが、その例users | wc -w
は現在ログインしているユーザーの数を表示することです。講師は数を表示し続け、出力をusers
ファイル()に書き込むように依頼しました。users > file
私の最初の考えは、元の例を簡単な読み取りに変更することでしたが、users > file | wc -w
エラーが発生しました。
ambiguous output redirect
私たちの大学のUnixラボでは、基本的に作業を実行でき、コマンドがシェルごとに異なる可能性がtcsh
あることを知っています。完全に忘れられたタスクを実行するためのコマンドはありますか?
答え1
使用tee
:
users | tee file | wc -w
ユーザー数を出力として提供し、ユーザーをコンテンツとしてファイルに書き込みます。
ご質問に該当する場合:
command >file | command2
これはうまくいきません。>file
出力をcommand
ファイルにリダイレクトしfile
、出力は匿名パイプに書き込まれ、コマンドはもうcommand2
一方の端からそれを読み取ります。これはあいまいなリダイレクトです。
このコマンドは、標準入力から受け取ったすべての内容が記録される引数をtee
受け入れます。また、標準入力から標準出力まですべてを記録し、ここでより多くのコマンドやファイルにリダイレクトできます。file
tee
tee
答え2
これを行うコマンドがありますtee
。
users | tee file | wc -w
PS。 (外部)コマンドはシェル間では変わりません。入出力リダイレクトの構文は異なります。