* 引数 [#d64bffc4]
** 位置パラメータ [#j1707692]
$1から$9まで。
echo "$1"
[[ -z "$1" ]] && exit1 || ARG1=$1
[[ -z "$1" ]] && exit 1 || ARG1=$1
** 引数の個数 [#gf6ac46b]
if [ $# -lt 1 ]; then
exit 1
fi
** 引数分だけループ [#s6fb6d42]
wile [ $# -gt 0 ]; do
echo "$1"
shift
done
デフォルトでは引数1個シフトするが、下のようにすると2個シフトする。
shift 2
** getoptsコマンドを使う [#j6062224]
#!/bin/bash
while getopts x:y:v opt; do # xとyとvの3つの引数を指定
case "$opt" in
v)
echo "V";;
x)
echo "X:" "$OPTARG" ;; # :付きの引数は$OPTARGにパラメータが入る
y)
echo "Y:" "$OPTARG" ;;
\?)
echo "Usage: $0 [-v] [-x foo] [-y bar]" 1>&2
exit 1;;
esac
done
shift $((OPTIND-1)) # 指定外の引数がある場合、その位置が$OPTINDに入る
if [ $# -ge 1 ]; then
echo
echo "$1"
echo "$2"
echo "$3"
fi
実行例は以下。
$ ./1.sh -v -x 123 -y 456 A B C
V
X: 123
Y: 456
A
B
C