コマンドに入力を提供するには、いくつの方法がありますか?

コマンドに入力を提供するには、いくつの方法がありますか?

Linuxについて私が最初に気づいたのは、コマンドにデータを入力するさまざまな方法でした。いくつか知っていましたが、どのくらいの合計を知らなかった。

これまで私が知っている方法は次のとおりです。

管路:

echo -e "zorro\nwurst\nlahmacun\nsozialhilfe" | sort

ファイル終了信号があるキーボードから:

sort
>gurken
>zucker
>braunkohle

ドキュメントから:

sort foo

HERE文字列(実際にはHERE文書と呼ばれます):

sort << HERE
>wasserkopf
>elternzeit
>schuldeingeständnis
>währungsreform
>alabasterhaut
HERE

これはすべてですか、それとももっと方法がありますか?なぜ他の方法がありますか?一部は重複していますか?

ベストアンサー1

まず、sort << HEREここでwaitは文字列ではありません。これはここのドキュメントです。ここの文字列は<<<演算子を使用します。これはbash(および他のシェル)にあります。

一般的に2つの方法があります。 1つは標準入力(およびリダイレクト)を介したもの、もう1つはパラメータを介したものです。

  1. 標準入力とリダイレクト

    これは、基本的にコマンドが実行される端末に接続されるストリームであり、ファイル記述子(fd)1に関連付けられています。端末に入力した内容はすべて入力されます。|パイプを使用したり、ここでドキュメントを使用したり、ここで文字列を使用したりするのと同じように、入力(入力)がリダイレクトされる可能性があります。入力は端子から出るのではなく、パイプに追加される前のコマンドの標準出力です。シェルごとにリダイレクトが異なるため、このカテゴリのシェルのドキュメントを確認する必要があります。探すリダイレクトを入力します。

  2. パラメータ

    これがあなたの例にありますsort foo。プログラムまたは関数を呼び出すときに1つ以上のパラメータを渡します。ローカルファイルは唯一の可能性です。このパラメータにはURLまたは他のコンテンツを含めることができます。ここのオプションは無限です。

要約すると、一般的に2つの方法があります。

  • 最初はアプリケーションの内部ロジックを抽象化し、OS/シェルレベルの標準入力で動作します。

  • 2つ目はアプリケーションの内部構造に関連していますが、呼び出しパラメータをインタフェースに基づいて無限の可能性を提供するのはまさに構造です。

どちらの場合も、答えに制限はありません。実際の制限は、オペレーティングシステム/シェルとアプリケーション自体で発生します。

おすすめ記事