引数

位置パラメータ

$1から$9まで。

 echo "$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