解決済みの質問

@EOD

unixのシェル内で
sqldba mode=line <<@EOD
.......
.......
@EOD

<<@EODは何をしてるのでしょうか?。
教えて下さい。
宜しくお願いします。

投稿日時 - 2003-06-03 11:35:04

QNo.564787

hfc

暇なときに回答ください

質問者が選んだベストアンサー

読んでないかもしれないけれど…訂正があります。

>「<<@EOD」から「@EOD」までの部分を
「<<@EOD」と「@EOD」に挟まれた部分を

>シェルの予約語やコマンド名でなければ別に何でも構いません。
終端の「@EOD」以外なら別に予約語などが入っていても問題ありませんので、
この行は無視してください。また、ヒアドキュメントの中でもコマンド置換は有効です。

$ today=<<EOF # バッククォートで囲む
>>`date`
>>EOF

$ echo $today
Mon Jun 09 22:28:08 JST 2003

このように変数 today には date コマンドが実行された結果が代入されます。

さて、役に立たなかったら遠慮なく斬ってくださって結構ですので、
一言お返事があると嬉しいな。では。

参考URL:http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html

投稿日時 - 2003-06-09 22:29:43

お礼

ご返事遅くなりまして申し訳ありませんでした。
大変勉強になりました。ありがとうございます。

投稿日時 - 2003-06-15 22:52:28

ANo.2

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(1件中 1~1件目)

ANo.1

これは「ヒアドキュメント(here document)」といって、
スクリプトの中にデータを埋め込んで利用するための機能です。

この場合「<<@EOD」から「@EOD」までの部分を sqldba へのデータとして利用しています。
(「sqldba」は Oracle のコマンド?)
「EOD」は「End Of Document」の略だと思われますが、
シェルの予約語やコマンド名でなければ別に何でも構いません。

シェルに限らず Perl や Ruby、PHP などこの記法が使える言語は多いので、
覚えておいて損はありません。

参考URL:http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/sh-text/sh/node7.html

投稿日時 - 2003-06-04 09:35:13

あわせてチェックしたい
  • EODの使用方法 ...
  • シェルスクリプト内の「exit」 ...
  • シェルスクリプト ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら