improve of cmpl.
[bush.git] / tests / lastpipe.tests
blob775e81dd2cf23f44a8ccc03bcea425bdda90c959
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 binfalse()
16         $binfalse || return 1   # normalize return value
19 if [ -x /usr/bin/true ]; then
20         bintrue=/usr/bin/true
21 elif [ -x /bin/true ]; then
22         bintrue=/bin/true
23 else
24         bintrue=true
26 if [ -x /usr/bin/false ]; then
27         binfalse=/usr/bin/false
28 elif [ -x /bin/false ]; then
29         binfalse=/bin/false
30 else
31         binfalse=false
34 shopt -s lastpipe
36 unset foo bar
37 echo a b c | read foo
38 echo after 1: foo = $foo
40 unset tot
41 declare -i tot
42 printf "%d\n" 1 2 3 | while read foo; do tot+=$foo; done
43 echo after 2: tot = $tot
45 unset bar
46 echo g h i | bar=7
47 echo after: $bar
49 unset foo last
50 printf "%s\n" a b c | while read foo; do last=$foo; done
51 echo last = $last
53 exit 142 | false
54 echo $? -- ${PIPESTATUS[@]}
56 true | false | $bintrue
57 echo $? -- ${PIPESTATUS[@]}
59 true | $bintrue | false
60 echo $? -- ${PIPESTATUS[@]}
62 set -o pipefail
63 true | $bintrue | false
64 echo $? -- ${PIPESTATUS[@]}
66 true | binfalse | true
67 echo $? -- ${PIPESTATUS[@]}
68 set +o pipefail
70 ${THIS_SH} ./lastpipe1.sub
71 echo lastpipe1.sub returns $?
73 ${THIS_SH} ./lastpipe2.sub