hush: fix and_or_and_backgrounding.tests failure

function                                             old     new   delta
done_pipe                                            133     218     +85

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2017-07-15 22:51:55 +02:00
parent 2c8929c7af
commit ee553b929c
5 changed files with 71 additions and 1 deletions

View File

@ -0,0 +1,4 @@
First
Second
Third
Done

View File

@ -0,0 +1,31 @@
# 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