yucken の業務上電脳 Tips 日記、なのだよ。-弐式-

いまさら電脳 Tips といふものを、書いてみむとして、するなり.元々は広い意味での電脳(コンピュータ)の Tips を書いていたのですが,いつのまにか,解析ツールの「電脳 ruby」と IDL の Tips がメインに (・)>

シェルスクリプト (#!/bin/sh) の基本

2 年ぶりにシェルスクリプトを書いたので基本的なことを忘れているのでメモっておきます。自分の書き方ですが、前はもっとスマートに書いていたかもしれません。とりあえず動く書き方ということで:

if 文

if [ $var -ge 10 ]# if のあとの [ ] ブロックの前にはスペースを入れる
then# if, elif の後は改行後に then を入れる.
#でも, 確かここまでワンライナーで書けたはずだが…
# あと, [ ] (ブラケット) 括弧はいらない書き方もあったはず

(elif [ $var -lt 5 ]
 then)
(else)

fi

for 文

実は今回初めて for 文を使いました. 普段は while を使って (たとえば) i = 0, 1, 2, … n の作業をするので

for idx in `seq 0 15`# ここ, [ ] で囲ってもいいような気がするんだけど… 
do# 改行して do を忘れない…ここも for からワンライナーでいけるはず
# idx を変化させる範囲の書き方が `seq ini fin` とか思いもしなかった

done

変数の定義

programdir="/usr/local/bin/"
# = (イコール) の前後はスペースを空けない.
#シングルクオートでも OK かも
program=$programdir"grads"
# 既存変数の代入時には $ を使う. 場面によっては { } (ブレース) 括弧
# が必要とした気がするけど詳細は忘れた. 既存変数以外の文字列部分は
# 上のようにダブルクオートで囲っておけばたぶん大丈夫

$program
#これで, プログラム /usr/local/bin/grads を実行

一行で書く

さっきからワンライナー, ワンライナー言ってましたが, 改行箇所をセミコロン (;-;) で置き換えれば OK ですね‥‥‥違う, (;).