引数

位置パラメータ

$1から$9まで。

echo "$1"
[[ -z "$1" ]] && exit 1 || ARG1=$1

引数の個数

if [ $# -lt 1 ]; then 
  exit 1
fi

引数分だけループ

wile [ $# -gt 0 ]; do
  echo "$1"
  shift
done

デフォルトでは引数1個シフトするが、下のようにすると2個シフトする。

shift 2

getoptsコマンドを使う

#!/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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2012-04-12 (木) 13:22:31 (2377d)