aboutsummaryrefslogtreecommitdiff
path: root/shell/hush_test/hush-vars/param_expand_assign.tests
blob: 79de956137233441b083a72ce85834f2a79ceb4f (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
# First try some invalid patterns. Do in subshell due to parsing error.
# (set argv0 to "SHELL" to avoid "/path/to/shell: blah" in error messages)
"$THIS_SH" -c 'echo ${=}' SHELL
"$THIS_SH" -c 'echo ${:=}' SHELL

# now some funky ones
"$THIS_SH" -c 'echo ${#=}' SHELL
"$THIS_SH" -c 'echo ${#:=}' SHELL

# should error out
"$THIS_SH" -c 'set --; echo _${1=}' SHELL
"$THIS_SH" -c 'set --; echo _${1:=}' SHELL
"$THIS_SH" -c 'set --; echo _${1=word}' SHELL
"$THIS_SH" -c 'set --; echo _${1:=word}' SHELL

# should not error
"$THIS_SH" -c 'set aa; echo _${1=}' SHELL
"$THIS_SH" -c 'set aa; echo _${1:=}' SHELL
"$THIS_SH" -c 'set aa; echo _${1=word}' SHELL
"$THIS_SH" -c 'set aa; echo _${1:=word}' SHELL

# should work fine
unset f; echo _$f
unset f; echo _${f=}
unset f; echo _${f:=}
unset f; echo _${f=word}
unset f; echo _${f:=word}

f=; echo _$f
f=; echo _${f=}
f=; echo _${f:=}
f=; echo _${f=word}
f=; echo _${f:=word}

f=fff; echo _$f
f=fff; echo _${f=}
f=fff; echo _${f:=}
f=fff; echo _${f=word}
f=fff; echo _${f:=word}