テンプレート文字列に値を埋め込む方法です。
sedを使う方法
F_DATE=20130408 SQL_STR="SELECT A FROM TABLENAME WHERE YMD_DATE = 'FDate';" SQL_STR=`echo ${SQL_STR} | eval sed 's/FDate/${F_DATE}/'` 変数展開その1
F_DATE=20130408 SQL_STR="SELECT A FROM TABLENAME WHERE YMD_DATE = \'${F_DATE}\';" SQL_STR=`eval echo ${SQL_STR}` 変数展開その2
F_DATE=\'20130408\' SQL_STR="SELECT A FROM TABLENAME WHERE YMD_DATE = ${F_DATE};" SQL_STR=`eval echo ${SQL_STR}` すべて結果は以下になります。
SELECT A FROM TABLENAME WHERE YMD_DATE = '20130408'; 変数展開は、sedを使う方法に比べ埋め込み処理はシンプルですが、クォーテーションのエスケープが必要になります。どれを選択するかは好みの問題かもしれませんが、値やテンプレートは比較的更新頻度が高いと思われるため、値にもテンプレートにもエスケープが必要のないsedを使う方法が個人的にはお勧めです。
2013/04/08
|
Linux >