95 96 97 98 99 0 1 2 3 4 5 6 7 8 9 1 1 ok hi while succeeded until succeeded: 4 if succeeded AND list succeeded OR list succeeded ! succeeded eval succeeded ! eval succeeded -- 1 ! eval succeeded -- 2 a 0 b 0 after 1 a 0 non-posix foo after brace group failure: 1 A 1 B 0 C 0 D 0 D 1 A 1 B 0 C 0 D 0 D 1 A 1 B 0 C 0 A 1 B 1 C 0 B 0 C 0 after negation 1: 0 after negation 2: 0 after negation 3: 1 after negation 4: 0 after brace pipeline foo after failure 1 after failure 2 after failure 3 true || false no exit false || true no exit false && false no exit A: B: ehB C: D: