- ベストアンサー
@EOD
unixのシェル内で sqldba mode=line <<@EOD ....... ....... @EOD <<@EODは何をしてるのでしょうか?。 教えて下さい。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
読んでないかもしれないけれど…訂正があります。 >「<<@EOD」から「@EOD」までの部分を 「<<@EOD」と「@EOD」に挟まれた部分を >シェルの予約語やコマンド名でなければ別に何でも構いません。 終端の「@EOD」以外なら別に予約語などが入っていても問題ありませんので、 この行は無視してください。また、ヒアドキュメントの中でもコマンド置換は有効です。 $ today=<<EOF # バッククォートで囲む >>`date` >>EOF $ echo $today Mon Jun 09 22:28:08 JST 2003 このように変数 today には date コマンドが実行された結果が代入されます。 さて、役に立たなかったら遠慮なく斬ってくださって結構ですので、 一言お返事があると嬉しいな。では。
その他の回答 (1)
- nightowl
- ベストアンサー率44% (490/1101)
これは「ヒアドキュメント(here document)」といって、 スクリプトの中にデータを埋め込んで利用するための機能です。 この場合「<<@EOD」から「@EOD」までの部分を sqldba へのデータとして利用しています。 (「sqldba」は Oracle のコマンド?) 「EOD」は「End Of Document」の略だと思われますが、 シェルの予約語やコマンド名でなければ別に何でも構いません。 シェルに限らず Perl や Ruby、PHP などこの記法が使える言語は多いので、 覚えておいて損はありません。
お礼
ご返事遅くなりまして申し訳ありませんでした。 大変勉強になりました。ありがとうございます。