hene

hene.dev

シェルスクリプトに渡す引数の数が足りなければ、エラーを表示して処理を中断

シェルスクリプトに渡す引数の数が足りなければ、エラーを表示して処理を中断

シェルスクリプトに渡す引数の数が足りなければ、エラーを表示して処理を中断する処理を 1 行で書く。

例: 引数が 3 つに満たない場合、エラーを表示して処理を中断する

  • $#: 引数の数を取得
  • $0: 実行しているシェルスクリプトファイル名
  • $1: 1 番目の引数の値
  • $2: 2 番目の引数の値
  • $3: 3 番目の引数の値
  • $4: 4 番目の引数の値

test.sh

#!/bin/bash -xe

[[ $# < 3 ]] && echo "$0 <argument_1> <argument_2> <argument_3>" && exit 1

ARGUMENT_1=$1
ARGUMENT_2=$2
ARGUMENT_3=$3
ARGUMENT_4=$4

# 処理

結果

$ ./test.sh
+ [[ 0 < 3 ]]
+ echo './test.sh <argument_1> <argument_2> <argument_3>'
./test.sh <argument_1> <argument_2> <argument_3>
+ exit 1

$ ./test.sh a
+ [[ 1 < 3 ]]
+ echo './test.sh <argument_1> <argument_2> <argument_3>'
./test.sh <argument_1> <argument_2> <argument_3>
+ exit 1

$ ./test.sh a b
+ [[ 2 < 3 ]]
+ echo './test.sh <argument_1> <argument_2> <argument_3>'
./test.sh <argument_1> <argument_2> <argument_3>
+ exit 1

$ ./test.sh a b c
+ [[ 3 < 3 ]]
+ ARGUMENT_1=a
+ ARGUMENT_2=b
+ ARGUMENT_3=c
+ ARGUMENT_4=

$ ./test.sh a b c d
+ [[ 4 < 3 ]]
+ ARGUMENT_1=a
+ ARGUMENT_2=b
+ ARGUMENT_3=c
+ ARGUMENT_4=d

$ ./test.sh a b c d e
+ [[ 5 < 3 ]]
+ ARGUMENT_1=a
+ ARGUMENT_2=b
+ ARGUMENT_3=c
+ ARGUMENT_4=d

参考

関連記事