Это похоже на ответ @ imjoris, но я сломал математику. Он находится в тройном порядке, где 0 - 0, 1 - положительный, а по умолчанию отрицательный. Я изменил ваш список, чтобы сделать его более ясным - надеюсь, что вы не покончили с собой: -)
case $((
sumcreate_retval == 0 ? 0 :
sumcreate_retval > 0 ? 1 :
2
))$((
movesum_retval == 0 ? 0 :
movesum_retval > 0 ? 1 :
2
)) in
00) script_retcode="$success_return" ;;
01) script_retcode="$movewarn_err" ;;
02) script_retcode="$movecrit_err" ;;
10) script_retcode="$createwarn_err" ;;
11) script_retcode="$both_crit_err" ;;
12) script_retcode="$createwarn_movecrit_err" ;;
20) script_retcode="$createcrit_err" ;;
21) script_retcode="$createcrit_movewarn_err" ;;
22) script_retcode="$both_warn_err" ;;
esac
Кстати, StackOverflow, вероятно, лучший сайт для сложных вопросов сценариев, подобных этим.