引数位置パラメータ$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 |
|