이것을 사실이라고 평가할 수 없는 것 같습니다
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 ...