summaryrefslogtreecommitdiff
path: root/tests/execscript
blob: 0a13d72fa4081af17ccd135977e4758e677f87aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
export LC_ALL=C
export LANG=C

set -- one two three
echo before exec1.sub: "$@"
echo calling exec1.sub
./exec1.sub aa bb cc dd ee
echo after exec1.sub with args: $?
./exec1.sub
echo after exec1.sub without args: $?

# set up a fixed path so we know notthere will not be found
PATH=/usr/bin:/bin:/usr/local/bin:
export PATH

notthere
echo $?

# this is iffy, since the error messages may vary from system to system
${THIS_SH} notthere
echo $?

# /bin/sh should be there on all systems
${THIS_SH} /bin/sh
echo $?

# try executing a directory
/
echo $?

${THIS_SH} /
echo $?

# try sourcing a directory
. /
echo $?

. ${THIS_SH} 2>/dev/null
echo $?

. /dev/null
echo $?

# kill two birds with one test -- test out the BASH_ENV code
echo echo this is bashenv > /tmp/bashenv
export BASH_ENV=/tmp/bashenv
${THIS_SH} ./exec3.sub
rm -f /tmp/bashenv
unset BASH_ENV

# we're resetting the $PATH to empty, so this should be last
PATH=

notthere
echo $?

command notthere
echo $?

command -p notthere
echo $?

# but -p should guarantee that we find all the standard utilities, even
# with an empty or unset $PATH
command -p sh -c 'echo this is $0'
unset PATH
command -p sh -c 'echo this is $0'

# a bug in bash before bash-2.01 caused PATH to be set to the empty string
# when command -p was run with PATH unset
echo ${PATH-unset}

echo "echo ok" | ${THIS_SH} -t

${THIS_SH} ./exec2.sub
echo $?

${THIS_SH} ./exec4.sub

# try exec'ing a command that cannot be found in $PATH
${THIS_SH} ./exec5.sub