* 引数 [#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

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