1 #!/bin/bash
2 ### 省略しますが、ここに前回学んだ著作権やライセンスの設定を!!
3 ng () {
4 echo ${1}行目が違うよ
5 res=1
6 }
7
8 res=0
9
10 out=$(seq 5 | ./plus)
11 [ "${out}" = 15 ] || ng "$LINENO"
12
13 [ "${res}" = 0 ] && echo OK #通ったのが(人間に)分かるように表示
14 exit $res
&&(AND): 左のコマンドの終了が正常なら右側を実行### 実行権限をお忘れなく ###
$ ./test.bash
OK
$ echo $?
0
plusなどへの入力を変えるなどの方法でecho $?で1と出ることも確認-xや-vでシェルスクリプトの動作を観察可能(デバッグに便利)#!/bin/bash -xv <- シバンの後ろに-xvと書いて-xと-vをセット
(以下略)
・・・省略・・・
out=$(seq 5 | ./plus)
++ seq 5
++ ./plus
+ out=15
[ "${out}" = 15 ] || ng "$LINENO"
+ '[' 15 = 15 ']'
[ "${res}" = 0 ] && echo OK
+ '[' 0 = 0 ']'
+ echo OK
OK
exit $res
+ exit 0
#!/bin/bash -xv
(略)
### NORMAL INPUT ###
out=$(seq 5 | ./plus)
[ "${out}" = 15 ] || ng "$LINENO"
### STRANGE INPUT ###
out=$(echo あ | ./plus) #計算できない値を入力してみる
[ "$?" = 1 ] || ng "$LINENO" #終了ステータスが1なのを確認
[ "${out}" = "" ] || ng "$LINENO" #この行と上の行は入れ替えるとダメです
#(↑なぜかは考えてみましょう)
out=$(echo | ./plus) #なにも入力しない
[ "$?" = 1 ] || ng "$LINENO" #これも異常終了する
[ "${out}" = "" ] || ng "$LINENO"
[ "$res" = 0 ] && echo OK
exit $res