(2010/12/16の元記事)
C言語だと配列はけっこう序盤に出てきて、いろんなところで役に立つんですが
シェルスクリプトにも配列が存在することをさっき知りました。
どこかで役に立たないかなーと思ってメモ
シェルはBシェルです
$HOGE=(1 2 3)
$BAR=(a b c)
原則通り=の両側にスペースは入れない
配列の要素はスペースで区切る
また要素全体は中括弧 { } ではなく括弧 ( ) で区切ること
(↑ここで30分もつまずいてしまいました(苦笑))
$HOGE=(a b c)
$echo ${HOGE[@]} #要素を指定するときは中括弧で囲む
a b c #[@]で全ての要素が表示される
$echo $HOGE
a #要素を指定していないので最初の要素が表示される
$echo ${HOGE[2]}
b #2番目の要素を表示
数字/文字以外も代入してみたい・・・
$date #時刻を表示するコマンド
2010年 12月16日 木曜日 06時00分06秒 JST
$FOO=(`date`) #コマンドの出力結果を配列に代入
$echo ${FOO[@]}
2010年 12月16日 木曜日 06時00分06秒 JST
$echo ${FOO[2]} #部分的に取り出すことも可能
木曜日
配列の要素はoから始まることに注意
コマンドの出力結果を使いたいときは、バッククォートで囲む
以上の機能を研究の解析作業に生かせないかと考える・・・
$HOGE=(`ls *.dat`) #ほげにディレクトリのdatファイルだけを代入
$for i in ${HOGE[@]}
>do
> plot $i
>done
plotというコマンドでグラフを書かせる
(plotはgnuplotにグラフを書かせるために自分で作ったコマンドです)
これで一気にグラフを書いたり、fittingとかの作業は簡単にできそう
うーん
どこかで役に立つだろうか。