Другой способ использования массива сообщений (нужна оболочка с массивами), проиндексированного с кодом возврата.
message=('success' 'failure')
ruby do_task.rb
say "${message[$?]}"
Также обратите внимание, что если код возврата ruby do_task.rb
больше 1, вам понадобится массив с сообщениями в индексах для каждого кода возврата.
Для поддержки двоичного успеха или неудачи с помощью метода выше:
message=('success' 'failure')
ruby do_task.rb
say "${message[$(($?>0))]}"