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