source: vendor/bash/3.1-p17/tests/execscript

Last change on this file was 3228, checked in by bird, 18 years ago

bash 3.1

File size: 2.2 KB
Line 
1export LC_ALL=C
2export LANG=C
3
4if [ $UID -eq 0 ]; then
5 echo "execscript: the test suite should not be run as root" >&2
6fi
7
8set -- one two three
9echo before exec1.sub: "$@"
10echo calling exec1.sub
11./exec1.sub aa bb cc dd ee
12echo after exec1.sub with args: $?
13./exec1.sub
14echo after exec1.sub without args: $?
15
16# set up a fixed path so we know notthere will not be found
17PATH=/usr/bin:/bin:/usr/local/bin:
18export PATH
19
20notthere
21echo $?
22
23# this is iffy, since the error messages may vary from system to system
24# and /tmp might not exist
25ln -s ${THIS_SH} /tmp/bash 2>/dev/null
26if [ -f /tmp/bash ]; then
27 /tmp/bash notthere
28else
29 ${THIS_SH} notthere
30fi
31echo $?
32rm -f /tmp/bash
33
34# /bin/sh should be there on all systems
35${THIS_SH} /bin/sh
36echo $?
37
38# try executing a directory
39/
40echo $?
41
42${THIS_SH} /
43echo $?
44
45# try sourcing a directory
46. /
47echo $?
48
49# try sourcing a binary file -- post-2.04 versions don't do the binary file
50# check, and will probably fail with `command not found', or status 127
51. ${THIS_SH} 2>/dev/null
52echo $?
53
54# post-bash-2.05 versions allow sourcing non-regular files
55. /dev/null
56echo $?
57
58# kill two birds with one test -- test out the BASH_ENV code
59echo echo this is bashenv > /tmp/bashenv
60export BASH_ENV=/tmp/bashenv
61${THIS_SH} ./exec3.sub
62rm -f /tmp/bashenv
63unset BASH_ENV
64
65# we're resetting the $PATH to empty, so this should be last
66PATH=
67
68notthere
69echo $?
70
71command notthere
72echo $?
73
74command -p notthere
75echo $?
76
77# but -p should guarantee that we find all the standard utilities, even
78# with an empty or unset $PATH
79command -p sh -c 'echo this is $0'
80unset PATH
81command -p sh -c 'echo this is $0'
82
83# a bug in bash before bash-2.01 caused PATH to be set to the empty string
84# when command -p was run with PATH unset
85echo ${PATH-unset}
86
87echo "echo ok" | ${THIS_SH} -t
88
89${THIS_SH} ./exec2.sub
90echo $?
91
92${THIS_SH} ./exec4.sub
93
94# try exec'ing a command that cannot be found in $PATH
95${THIS_SH} ./exec5.sub
96
97# this was a bug in bash versions before bash-2.04
98${THIS_SH} -c 'cat </dev/null | cat >/dev/null' >&-
99
100# checks for proper return values in subshell commands with inverted return
101# values
102
103${THIS_SH} ./exec6.sub
104
105# checks for properly deciding what constitutes an executable file
106${THIS_SH} ./exec7.sub
107
108true | `echo true` &
109
110echo after
Note: See TracBrowser for help on using the repository browser.