bashで未定義な変数があった場合、下記のように処理していました。
$ cat test1.sh #! /bin/bash VAR1=$1 if [ -z "$VAR1" ] then echo needs arg1 exit 1 fi echo ok $VAR1
下記のように動作します。
$ ./test1.sh needs arg1 $ echo $? 1 $ ./test1.sh aaa ok aaa $ echo $? 0$
set -u
を使うとシンプルになります。
$ cat test2.sh #! /bin/bash set -u VAR1=$1 echo ok $VAR1 $ ./test2.sh ./test2.sh: 行 5: $1: 未割り当ての変数です $ echo $? 1 $ ./test2.sh aaa ok aaa $ echo $? 0$
コメント