2009-08-30 12 views
2

"cat> xx.txt < < EOF"をコマンドラインで入力すると、さらにcmdlineからの入力はEOFが書き込まれるまでファイルxx.txtになります。 EOFはここでは神聖な言葉ではありません。代わりにコマンドがcat> xx.txt < < BBBの場合、BBBが書き込まれるまでcmdline入力はxx.txtになります。私はこれの背後にある根拠(< end_of_input_sequence)を知りません。猫のmanページはあまり説明していません。 私はスクリプトなどでこれを見ただけです猫の魔法 - 入力の末尾

答えて

9

これはcatではなく、シェルの機能です。そのため、catマニュアルでは見つからないのです。

"こちらのドキュメント"と呼ばれています - 一部のドキュメントについてはAdvanced Bash-Scripting Guideのこのページをご覧ください。

7

これはhere documentと呼ばれます。私はそれがシェルで初めて登場したと信じていますが、Perl、Ruby、PHPなどのいくつかのプログラミング言語もこのスタイルを実装しています。

4

この構文はHere Documentと呼ばれています(スクロールして見つけてください)。

これはコマンドに固有のものではなく、他のコマンドよりもcatではありません。それはシェルの人で見つけることができます。例えば、man bash

ここ

3.6.6ドキュメント

(末尾の空白を有する)のみ ワードを含む行になるまでリダイレクションのこのタイプは、現在 源からの入力を読み取るために シェルに指示します が表示されます。その ポイントまで読み取られたすべての行は、コマンド用の標準 入力として使用されます。

(未完全な引用 - 人間に読むことがよりあり)


ところで、これは、PHPのようないくつかのプログラミング言語で再利用されている構文です。 - )

関連する問題