woshidan's loose leaf

ぼんやり勉強しています

bashで引数の配列の一つ後の要素を取り出す

即席で作ったシェルスクリプトのオプションの自前解析がしたくて。。

#!/bin/bash

i=0
for OPT in "$@"
do
    echo "index: $i OPT: $OPT OPTの一個後ろの要素 ${@:$(expr $i + 2):1}" # $i + 1 でないのは@の先頭は全要素を出力するため
    i=$(expr $i + 1)
done
$ test.sh aa bbb c d
index: 0 OPT: aa OPTの一個後ろの要素 bbb
index: 1 OPT: bbb OPTの一個後ろの要素 c
index: 2 OPT: c OPTの一個後ろの要素 d
index: 3 OPT: d OPTの一個後ろの要素 

http://d.hatena.ne.jp/y-kawaz/20100720/1279607344