]> git.ipfire.org Git - thirdparty/bash.git/blob - tests/posix2syntax.sub
bash-5.0 distribution sources and documentation
[thirdparty/bash.git] / tests / posix2syntax.sub
1 : ${THIS_SH:=./bash}
2 bashname=bash${BASH_VERSION%%.*}
3
4 # tests for Posix grammar special cases
5
6 # Posix grammar rule 5
7 ${THIS_SH} -c 'for invalid-name in a b c; do echo error; done' $bashname
8
9 # Posix grammar rule 6: third word in FOR or SELECT
10 for i; do echo; done; echo in
11 for i; do echo in; done
12 for i do echo in; done
13
14 select i; do echo; done; echo in
15 select i; do echo in; done; echo in
16 select i do echo in; done; echo in
17
18 # Posix grammar rule 4: when PATTERN == ESAC, return ESAC
19 ${THIS_SH} -c 'case x in esac) echo done; esac' $bashname
20
21 # Posix grammar rule 6: third word in CASE
22 ${THIS_SH} -c 'case in in in) echo in; esac;' $bashname
23 ${THIS_SH} -c 'case in do do) echo in; esac' $bashname
24
25 # Posix grammar rule 8: function NAME
26 ${THIS_SH} -o posix -c 'for()
27 {
28 echo function for;
29 }' $bashname
30
31 for for in for; do echo in; echo done; done
32
33 ${THIS_SH} -c 'for (( i = 0; i < 5; i++ )) do : ; done' $bashname
34 ${THIS_SH} -c 'for (( i = 0; i < 5; i++ )) { : ; }' $bashname
35
36 # bug report: IN turning on unwanted alias expansion
37 ${THIS_SH} -o posix -c '
38 alias foo='two words'
39 foo_word='foo'
40 case "$foo_word"
41 in
42 foo) echo "bad 1";;
43 esac' $bashname
44
45 ${THIS_SH} -o posix -c '
46 alias foo='oneword'
47 foo_word='foo'
48 case "$foo_word"
49 in
50 foo) echo "ok 1";;
51 esac' $bashname
52
53