重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【終了しました】教えて!goo新規会員登録

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

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

A 回答 (2件)

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



>「<<@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/bas …
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/06/15 22:52

これは「ヒアドキュメント(here document)」といって、


スクリプトの中にデータを埋め込んで利用するための機能です。

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

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

参考URL:http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manua …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!