Uncategorizedソフトウェア

シェルの未定義変数

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$

コメント

タイトルとURLをコピーしました