Number of Processes Started, by shell and test case Cases where ... OSH isn't the minimum: 52 OSH starts more than bash 5: 0 OSH starts fewer than bash 5: 52 YSH not equal to OSH: 0 ID osh-py ysh-py zsh ash dash bash-5 mksh bash-4 osh>min ysh!osh Description TOTAL 52 52 126 127 127 130 130 134 01 ^ ^ ^ ^ ^ ^ ^ ^ 0>1 echo hi 02 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 date 03 ^ ^ ^ ^ ^ ^ ^ ^ 0>1 date ; 04 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 trap 'echo mytrap' EXIT; date 05 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 date; echo hi 06 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 echo hi; date 07 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 date; date 08 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 { date; date; } 09 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 date; { date; } 10 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 . _tmp/sourced.sh 11 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 (echo hi) 12 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 (date) 13 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 ( ( date ) ) 14 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 ( ( date ) ); echo hi 15 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 echo hi; (date) 16 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 echo hi; (date;) 17 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 echo hi; (echo hi;) 18 ^ ^ ^^ ^^ ^^ ^^ ^^^ ^^^ 0>1 echo hi; (echo hi; date) 19 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 ( echo hi ); echo hi 20 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 date > /tmp/redir.txt 21 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 (date;) > /tmp/sentence.txt 22 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 date 2> /tmp/stderr.txt | wc -l 23 ^ ^ ^ ^ ^ ^ ^ ^ 0>1 echo hi > /tmp/redir.txt 24 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 (echo hi;) > /tmp/sentence.txt 25 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 echo hi 2> /tmp/stderr.txt | wc -l 26 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 (date; echo hi) 27 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^^ 0>1 echo $(date) 28 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 echo $(echo hi) 29 ^ ^ ^^ ^^ ^^ ^^^ ^^ ^^^ 0>1 echo $( ( date ) ) 30 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 echo $( ( date ); echo hi ) 31 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 ( echo hi ); echo done 32 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 date | wc -l 33 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 ! date | wc -l 34 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 echo a | wc -l 35 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 command echo a | wc -l 36 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^^ 0>1 command date | wc -l 37 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^^ 0>1 ! command date | wc -l 38 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 ( date ) | wc -l 39 ^ ^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 date | read x 40 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 { echo a; echo b; } | wc -l 41 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 { echo a; echo b; } | wc -l; echo done 42 ^ ^ ^^^ ^^^ ^^^ ^^^^ ^^^^ ^^^^ 0>1 { echo a; date; } | wc -l 43 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 ( echo a; echo b ) | wc -l 44 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 ( echo a; echo b ) | ( wc -l ) 45 ^ ^ ^^^ ^^^ ^^^ ^^^^ ^^^^ ^^^^ 0>1 { echo prefix; ( echo a; echo b ); } | ( wc -l ) 46 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 echo hi & wait 47 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 date & wait 48 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 echo hi | wc -l & wait 49 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 date | wc -l & wait 50 ^ ^ ^^ ^^ ^^ ^^ ^^ ^^ 0>1 trap 'echo mytrap' EXIT; date & wait 51 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 trap 'echo mytrap' EXIT; date | wc -l & wait 52 ^ ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ 0>1 { trap 'echo mytrap' EXIT; date; } & wait