and_or_and_backgrounding.tests 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. # UNFIXED BUG: hush thinks that ; && || & have the same precedence.
  2. # According to this doc, && || have higher precedence than ; &.
  3. # See example below.
  4. # Precedence of ; is not a problem in practice. Precedence of & is.
  5. #
  6. #http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
  7. #
  8. #2.9.3 Lists
  9. #
  10. #An AND-OR list is a sequence of one or more pipelines separated by
  11. #the operators "&&" and "||" .
  12. #
  13. #A list is a sequence of one or more AND-OR lists separated by the operators
  14. #';' and '&' and optionally terminated by ';', '&', or <newline>.
  15. #
  16. #The operators "&&" and "||" shall have equal precedence and shall be
  17. #evaluated with left associativity. For example, both of the following
  18. #commands write solely bar to standard output:
  19. #
  20. # false && echo foo || echo bar
  21. # true || echo foo && echo bar
  22. #
  23. #A ';' or <newline> terminator shall cause the preceding AND-OR list
  24. #to be executed sequentially; an '&' shall cause asynchronous execution
  25. #of the preceding AND-OR list.
  26. echo First && sleep 0.2 && echo Third &
  27. sleep 0.1
  28. echo Second
  29. wait
  30. echo Done