シェルスクリプト 返値

変数をクォートして文字列として扱うのがミソ。クォートしないと値を返さないプログラムの場合にtestコマンドがエラーになってしまう。(unary operator expected)

#!/bin/sh

/usr/bin/true
set_result=$?

/usr/bin/false
check_result=$?

echo $set_result
echo $check_result

if [ "$set_result" = "0" ] && [ "$check_result" = "0" ]; then
 echo 0
else
 echo 1
fi