以前のリビジョンの文書です
dataファイルをguplotで可視化し,gif形式で保存して,最後にそれらを連結させて動画をつくる. 必ずdataファイルは連番(output01.dat,output02.dat,….)とすること。(連番のファイル名をつける。)
シェルスクリプトを適当なファイル“hoge.sh”に保存し,dataファイルと同じディレクトリに置く. あとは、ターミナルでシェルを実行する。
$ sh hoge.sh
#!/bin/bash minx=0 maxx=10 miny=0 maxy=10 ## mkdir gif ## for filename in output*.dat do ## output11.dat -> 11 ##### newname=${filename#output} newname=${newname%.dat} ## make gif file '0011.gif' #### gnuplot <<GNU set terminal gif set output "gif/${newname}.gif" set xrange[$minx:$maxx] # set xlabel "location from upstream [km]" set yrange[$miny:$maxy] # set ylabel "water level & bed [m]" plot '${filename}'with l GNU done # make movefile #### convert -delay 10 -loop 0 gif/*.gif movie.gif
変数の定義
変数=値or文字列
以後変数を参照する時は,変数の頭に $ をつけるか, ${ }で囲む.
echo ${変数}
与えられた引数の数だけ処理の繰り返しを行いたい場合はfor文を使用する。for文はinの後に続く引数を変数に代入しながら doとdoneの間に記述されたコマンドを繰り返し実行する。そしてinの後の引数がなくなり次第ループから抜ける。
for filename in output*.dat do ... done
変数の一部を削りたい場合,以下のパターンマッチを用いる.
${hoge#pattern} #hoge前方から最短マッチ部分を除く ${hoge##pattern} #hoge前方から最長マッチ部分を除く ${hoge%pattern} #hoge後方から最短マッチ部分を除く ${hoge%%pattern} #hoge後方から最長マッチ部分を除く
一番上の例では変数“filename”から“output”と“.dat”を削っている.
## output11.dat -> 11 ##### newname=${filename#output} newname=${newname%.dat}
以下のように囲むことによって,シェルの中でgnuplotを動かせる.末尾のGNUは必ず行頭に置かなければならない.
gnuplot <<GNU
...(gnuplotコマンド)...
GNU
また,動画をつくる際,グラフの範囲を指定して置く.
“-delay”オプションは次の絵を表示するための待ち時間で、単位は1/100秒。アニメーションをループさせたい場合は “-loop 回数” をconvertの引数に指定する。繰り返しの場合は回数を0とする.
# make movefile #### convert -delay 10 -loop 0 gif/*.gif movie.gif