Posix(HP-UX)でのヒアドキュメントの動作
11日の日記(http://d.hatena.ne.jp/kwy/20090911)で、<シェルスクリプトのヒアドキュメントでも"-"が使えるなんて僕この本で始めて気づきました>と書いたわけですが、早速HP-UX での動作を試してみました。
作ってみたのは今更ながらのSTATSPACK で各スナップショット間のレポートを作成するスクリプト。
#!/sbin/sh if [ $# -ne 2]; then echo "This script need two arguments." echo "usage: `basename` <begin snapID> <end snapID>" exit 0 fi min_snap=$1 max_snap=$2 next_snap=`expr ${min_snap} + 1` while [ ${max_snap} -gt ${next_snap} ] do echo "creating report of snapshot No.${min_snap} -> ${next_snap}" sqlplus perfstat/perfstat <<- EOF def begin_snap=${min_snap} def end_snap=${next_snap} def report_name=report_from_${min_snap}_to_${next_snap} @?/rdbms/admin/spreport.sql exit EOF min_snap=${next_snap} next_snap=`expr ${min_snap} + 1` done exit
注意点としては
・EOFを引用符で囲むと、それが一重だろうが二重だろうがRubyでいう一重引用符で囲ったのと同じ動作になる。
・<<- で無視できるインデントはタブのみで、スペースを区切るとシンタックスエラーを宣告される。
といったところでしょうか。どちらも気づくのに手間取りました。