hush/shell/hush_test/hush-bugs/and_or_and_backgrounding.tests

32 lines
1.0 KiB
Plaintext
Raw Normal View History

# UNFIXED BUG: hush thinks that ; && || & have the same precedence.
# According to this doc, && || have higher precedence than ; &.
# See example below.
# Precedence of ; is not a problem in practice. Precedence of & is.
#
#http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
#
#2.9.3 Lists
#
#An AND-OR list is a sequence of one or more pipelines separated by
#the operators "&&" and "||" .
#
#A list is a sequence of one or more AND-OR lists separated by the operators
#';' and '&' and optionally terminated by ';', '&', or <newline>.
#
#The operators "&&" and "||" shall have equal precedence and shall be
#evaluated with left associativity. For example, both of the following
#commands write solely bar to standard output:
#
# false && echo foo || echo bar
# true || echo foo && echo bar
#
#A ';' or <newline> terminator shall cause the preceding AND-OR list
#to be executed sequentially; an '&' shall cause asynchronous execution
#of the preceding AND-OR list.
echo First && sleep 0.2 && echo Third &
sleep 0.1
echo Second
wait
echo Done