| 1 | ## our_shell: ysh
 | 
| 2 | ## oils_failures_allowed: 1
 | 
| 3 | 
 | 
| 4 | #### Redirect with if, case, while, for
 | 
| 5 | 
 | 
| 6 | if (true) {
 | 
| 7 |   echo ysh-if
 | 
| 8 | } > out
 | 
| 9 | 
 | 
| 10 | cat out
 | 
| 11 | 
 | 
| 12 | case (true) {
 | 
| 13 |   (true) {
 | 
| 14 |     echo ysh-case
 | 
| 15 |   }
 | 
| 16 | } > out
 | 
| 17 | 
 | 
| 18 | cat out
 | 
| 19 | 
 | 
| 20 | while (true) {
 | 
| 21 |   echo ysh-while
 | 
| 22 |   break
 | 
| 23 | } > out
 | 
| 24 | 
 | 
| 25 | cat out
 | 
| 26 | 
 | 
| 27 | for x in ([42]) {
 | 
| 28 |   echo ysh-for
 | 
| 29 | } > out
 | 
| 30 | 
 | 
| 31 | cat out
 | 
| 32 | 
 | 
| 33 | ## STDOUT:
 | 
| 34 | ysh-if
 | 
| 35 | ysh-case
 | 
| 36 | ysh-while
 | 
| 37 | ysh-for
 | 
| 38 | ## END
 | 
| 39 | 
 | 
| 40 | 
 | 
| 41 | #### Redirect failure is either fatal or can be checked
 | 
| 42 | 
 | 
| 43 | # TODO: this fails, but there's no way to check it
 | 
| 44 | #
 | 
| 45 | # We can have shopt -s redir_errexit in YSH then?
 | 
| 46 | # Can you catch the error?
 | 
| 47 | 
 | 
| 48 | { echo 1; echo 2 } > /
 | 
| 49 | 
 | 
| 50 | echo status=$?
 | 
| 51 | 
 | 
| 52 | ## STDOUT:
 | 
| 53 | ## END
 | 
| 54 | 
 |