逆引きシェルスクリプト/ヒアドキュメント内の変数を展開しない方法
の編集
Top
/
逆引きシェルスクリプト
/
ヒアドキュメント内の変数を展開しない方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * ヒアドキュメント内の変数を展開しない方法 [#l3c17a1e] シェルスクリプトでヒアドキュメントを利用した場合、変数が展開されて出力されてしまいます。~ バックスラッシュによるエスケープを使用せずにヒアドキュメント内の変数を展開しない方法を以下に記します。~ 尚、以下のスクリプトはbashでテストしました。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 関連資料 [#le56b029] -[[逆引きシェルスクリプト/シェルスクリプトで複数行をまとめてコメントアウトする方法]] -[[逆引きシェルスクリプト/ヒアドキュメントをファイルに出力する方法]] -[[ペーストした文字列をファイルに出力する簡単な方法・cat>逆引きUNIXコマンド/ペーストした文字列をファイルに出力する簡単な方法・cat]] * 変数を展開しない方法 [#wa7791fc] ヒアドキュメントの開始を示すキーワード(以下の例ではEOT)をシングルクオートまたはダブルクオートで囲むだけです。~ 実際に以下のサンプルコードでは''&color(red){'};EOT&color(red){'};''と''&color(red){"};EOT&color(red){"};''で動作確認をとりました。 **変数を展開しないヒアドキュメントのサンプルコード [#p99bb83b] #ref(heredocument.sh) #!/bin/bash MSG1="HELLO WORLD.(test1)" MSG2="HELLO WORLD.(test2)" MSG3="HELLO WORLD.(test3)" echo "here document test 1." cat << EOT <HTML> <BODY> $MSG1 </BODY> </HTML> EOT echo "here document test 2." cat << 'EOT' <html> <body> $MSG2 </body> </html> EOT echo "here document test 3." cat << "EOT" <html> <body> $MSG3 </body> </html> EOT **実行結果 [#h94c1376] 以下のスクリーンショットは上記サンプルコードを実行した結果です。~ ヒアドキュメントで変数展開がされていないのが確認できます。 #ref(heredocument-01.gif) #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
タイムスタンプを変更しない
#navi(../) * ヒアドキュメント内の変数を展開しない方法 [#l3c17a1e] シェルスクリプトでヒアドキュメントを利用した場合、変数が展開されて出力されてしまいます。~ バックスラッシュによるエスケープを使用せずにヒアドキュメント内の変数を展開しない方法を以下に記します。~ 尚、以下のスクリプトはbashでテストしました。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 関連資料 [#le56b029] -[[逆引きシェルスクリプト/シェルスクリプトで複数行をまとめてコメントアウトする方法]] -[[逆引きシェルスクリプト/ヒアドキュメントをファイルに出力する方法]] -[[ペーストした文字列をファイルに出力する簡単な方法・cat>逆引きUNIXコマンド/ペーストした文字列をファイルに出力する簡単な方法・cat]] * 変数を展開しない方法 [#wa7791fc] ヒアドキュメントの開始を示すキーワード(以下の例ではEOT)をシングルクオートまたはダブルクオートで囲むだけです。~ 実際に以下のサンプルコードでは''&color(red){'};EOT&color(red){'};''と''&color(red){"};EOT&color(red){"};''で動作確認をとりました。 **変数を展開しないヒアドキュメントのサンプルコード [#p99bb83b] #ref(heredocument.sh) #!/bin/bash MSG1="HELLO WORLD.(test1)" MSG2="HELLO WORLD.(test2)" MSG3="HELLO WORLD.(test3)" echo "here document test 1." cat << EOT <HTML> <BODY> $MSG1 </BODY> </HTML> EOT echo "here document test 2." cat << 'EOT' <html> <body> $MSG2 </body> </html> EOT echo "here document test 3." cat << "EOT" <html> <body> $MSG3 </body> </html> EOT **実行結果 [#h94c1376] 以下のスクリーンショットは上記サンプルコードを実行した結果です。~ ヒアドキュメントで変数展開がされていないのが確認できます。 #ref(heredocument-01.gif) #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
テキスト整形のルールを表示する
添付ファイル:
heredocument-01.gif
645件
[
詳細
]
heredocument.sh
508件
[
詳細
]