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