do when, do unless

control structure

Syntax
do (when|unless) condition?
   local declaration*
   action*
(else condition
   local-declaration*
   action*)*
(else
   local-declaration*
   action*)?
done


Purpose

You can use do when and do unless to make a group of actions conditional:

  do when count > 5
     output "more than 5"
  done

You can use else to specify actions to be taken if the condition is not met:

  do when count > 5
     output "more than 5"
  else
     output "less than 6"
  done

You can use one or more else when statements to provide multiple conditional alternatives:

  do when count > 5
     output "more than 5"
  else when count = 5
     output "exactly 5"
  else
     output "less than 5"
  done

In all these circumstances you can use do unless in place of do when to reverse the test. do unless is equivalent to do when not, but in many cases do unless will be more readable.