これを真と評価できないようです
is_equal () {
in="$1"
if [[ "$in" == "385" ]]; then
return 0
else
return 1
fi
}
a= is_equal 385
if [[ "$a" ]]; then
echo "equal"
else
echo "NOT equal"
fi
$ ./equal_nums.sh
NOT equal
$
答え1
関数に終了状態がありますが、出力はありません。変数は$a
常に空であるため、[[ $a ]]
テストは常に「false」です。
あなたはこれが欲しい:
if is_equal 42; then ...
しかし、あなたはあなたが欲しいものがこれだと思います
is_equal 42 # don't capture the output
a=$? # but do grab the exit status
if [[ $a -eq 0 ]]; then ...