2013年4月17日水曜日

bashの書式いろいろ

他のシェルスクリプトを呼び出す

source ./common.sh

文字列を分割する

$aをカンマで分割したい場合
IFS=','
set -- $a
$1,$2,...に分割された部分文字列が順次入る.
IFSがデリミタ.

関数

関数の定義は
funcname() {
 :
}
引数は,$1,$2,...に入る.
返り値は,echo で返す.
関数は`funcname`で呼び出す.
引数はコマンドラインでの作法と同じ.

簡単な例:

to_cyg() {
    echo "/cygdrive/${1/:/}"
}
data_basedir="c:/data/trimming/"
src_dir="${data_basedir}src/"
cyg_src_dir=`to_cyg ${src_dir}`

ローカル変数

関数内でのみ有効なローカル変数の使用
local $filename=$1

計算

bash限定とのことだが(未確認),exprを明示的に呼び出さなくてもよい記述方法として,$(( と $)) で囲む方法がある.
中では,変数名に$を付けなくてよい.
local xmin=$2
local ymin=$3
local xmax=$4
local ymax=$7
local width=$((xmax - xmin + 1))
local height=$((ymax - ymin + 1))

配列

配列への代入は,()でくくる.
p=(`split_answer ${answer}`)
通常の変数と同じように使用できる.添字に変数を使う場合,$は不要.
p_width=5
:
${p[p_width]}

0 件のコメント:

コメントを投稿