1
0
Fork 0
bash/tests/dollar.right
Daniel Baumann fa1b3d3922
Adding upstream version 5.2.37.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 06:49:21 +02:00

744 lines
10 KiB
Text

argv[1] = <>
argv[1] = <a b>
argv[1] = <ab>
argv[1] = <a b>
argv[1] = <a>
argv[2] = <b>
argv[1] = <a>
argv[2] = <b>
argv[1] = <3>
argv[1] = <bob>
argv[1] = <tom dick harry>
argv[1] = <joe>
argv[1] = <3>
argv[1] = <bob>
argv[1] = <tom dick harry>
argv[1] = <joe>
argv[1] = <3>
argv[1] = <bob>
argv[1] = <tom dick harry>
argv[1] = <joe>
argv[1] = <3>
argv[1] = <bob>
argv[1] = <tom dick harry>
argv[1] = <joe>
argv[1] = <3>
argv[1] = <bob>
argv[1] = <tom dick harry>
argv[1] = <joe>
argv[1] = <3>
argv[1] = <bob>
argv[1] = <tom dick harry>
argv[1] = <joe>
argv[1] = <5>
argv[1] = <bob>
argv[1] = <tom>
argv[1] = <dick>
argv[1] = <5>
argv[1] = <bob>
argv[1] = <tom>
argv[1] = <dick>
argv[1] = <1>
argv[1] = <bob>
argv[2] = <tom>
argv[3] = <dick>
argv[4] = <harry>
argv[5] = <joe>
argv[1] = <3>
argv[1] = <bob>
argv[1] = <tom>
argv[2] = <dick>
argv[3] = <harry>
argv[1] = <joe>
argv[1] = <a>
argv[2] = <b>
argv[3] = <c>
argv[4] = <d>
argv[5] = <e>
argv[1] = <a>
argv[2] = <b>
argv[3] = <c>
argv[4] = <d>
argv[5] = <e>
argv[1] = <foo>
argv[2] = <bar>
argv[3] = <bam>
argv[1] = <foobarbam>
argv[1] = <foo>
argv[2] = <bar>
argv[3] = <bam>
argv[1] = <foo>
argv[2] = <bar>
argv[3] = <bam>
argv[1] = <foo bar bam>
foo = 1:2:3:4:5:6:7:8:9:10
bar = 1:2:3:4:5:6:7:8:9:10
foo1 = 1 2 3 4 5 6 7 8 9 10
bar1 = 1 2 3 4 5 6 7 8 9 10
foo2 = 1:2:3:4:5:6:7:8:9:10
bar2 = 1:2:3:4:5:6:7:8:9:10
foo3 = 1:2:3:4:5:6:7:8:9:10
bar3 = 1:2:3:4:5:6:7:8:9:10
ok 1
ok 2
ok 3
ok 4
foo = 1 2 3 4 5 6 7 8 9 10
bar = 1 2 3 4 5 6 7 8 9 10
foo1 = 1 2 3 4 5 6 7 8 9 10
bar1 = 1 2 3 4 5 6 7 8 9 10
foo2 = 1 2 3 4 5 6 7 8 9 10
bar2 = 1 2 3 4 5 6 7 8 9 10
foo3 = 1 2 3 4 5 6 7 8 9 10
bar3 = 1 2 3 4 5 6 7 8 9 10
ok 1
ok 2
ok 3
ok 4
var=${a[*]} ... one:::two:three:::four
var="${a[*]}" ... one:::two:three:::four
var=$* ... one:::two:three:::four
var="$*" ... one:::two:three:::four
var=${a[@]} ... one:::two three:::four
var="${a[@]}" ... one:::two three:::four
var=$@ ... one:::two three:::four
var="$@" ... one:::two three:::four
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
ok at 1
ok at 2
ok star 1
ok star 2
,foo
,foo
,foo
,foo
ok at 1
ok at 2
ok at 3
ok star 1
ok star 2
ok star 3
ok at-star 1
ok at-star 2
a b c
a|b|c
a b c
a|b|c
ok at 1
ok at 2
ok at 3
ok at 4
ok at 5
ok at 1
ok at 2
ok at 3
ok at 4
ok at 5
ok at 1
ok at 2
ok at 3
ok at 4
ok at 5
ok at 6
ok at 7
ok at 8
ok at 9
argv[1] = <a>
argv[1] = <a>
argv[1] = <a>
argv[1] = <a>
argv[1] = <a>
argv[1] = <a>
argv[1] = <a>
argv[1] = <one>
argv[1] = <o>
argv[1] = <o>
argv[1] = <one>
<123 abc> <def> <ghi 456>
<123 abc> <def> <ghi\ 456>
<c>
a bc
a b
ab
<a><b>
a b
a b
<a><b><c><d>
<a><b><c><d>
<a><b><c d>
<a><b><c d>
<a><b>
<a:b>
<a><b>
<a b>
abcd
d
abcd
d
c
argv[1] = <a b>
argv[1] = <abcd>
argv[1] = <abcd>
argv[1] = <a>
argv[2] = <b>
argv[1] = <a b>
<c>
<c>
<d>
<d>
0
0
1
1
1
0
0
0
1
0
0
0
1
after 1
after 2
after 3
same as 1
argv[1] = <>
same as 2
argv[1] = <>
null fields
argv[1] = <>
argv[1] = <>
null fields in rhs
null string with unquoted $@
argv[1] = <>
null string with quoted $@
argv[1] = <>
assignment
argv[1] = <>
variable
argv[1] = <>
dollar-at
argv[1] = <'a'>
argv[2] = <'b'>
argv[3] = <'c'>
argv[1] = <'a'>
argv[2] = <'b'>
argv[3] = <'c'>
argv[1] = <>
argv[2] = <a>
argv[3] = <>
argv[4] = <>
argv[5] = <b>
argv[6] = <>
argv[7] = <>
argv[8] = <c>
argv[1] = <'a'>
argv[2] = <'b'>
argv[3] = <'c'>
argv[1] = <>
argv[2] = <a>
argv[3] = <>
argv[4] = <>
argv[5] = <b>
argv[6] = <>
argv[7] = <>
argv[8] = <c>
argv[1] = <'a'>
argv[2] = <'b'>
argv[3] = <'c'>
argv[1] = <>
argv[2] = <a>
argv[1] = <'a'>
argv[1] = <'a'>
argv[2] = <'b'>
argv[3] = <'c'>
argv[1] = <'a'>
argv[2] = <'b'>
argv[3] = <'c'>
|this|
|is|
|a|
|test|
|this|
|is|
|a|
|test|
|this|
|is|
|a|
|test|
|this|
|this|
|this is a test|
|this is a test|
|this|
|is|
|a|
|test|
|this|
|is|
|a|
|test|
a1=a b c a,b,c a b c a,b,c a b c a,b,c
a2=a b c a,b,c a b c a,b,c a b c a,b,c
a3=a b c a,b,c a b c a,b,c a b c a,b,c
a4=a b c a,b,c a b c a,b,c a b c a,b,c
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = <>
argv[1] = < X >
argv[1] = <>
argv[1] = < X >
argv[1] = <>
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X>
argv[2] = <Y >
argv[1] = < X>
argv[2] = <Y >
argv[1] = < X>
argv[2] = <Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < XY >
argv[1] = < XY >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X Y >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = <ba>
argv[1] = <ba>
argv[1] = <ba>
argv[1] = <b>
argv[2] = <a>
argv[1] = <a:b>
argv[1] = <a:b>
argv[1] = <a>
argv[2] = <b>
argv[1] = <a>
argv[2] = <b>
argv[1] = <a>
argv[2] = <b>
argv[1] = <a>
argv[2] = <b>
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = <a>
argv[2] = <b>
argv[1] = <a>
argv[2] = <b>
argv[1] = <a>
argv[2] = <b>
argv[1] = <a>
argv[2] = <b>
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = < X >
argv[1] = <^?>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <^?>
argv[1] = <^?>
argv[1] = <^?>
argv[1] = <^?>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <^?>
argv[1] = <^?>
argv[1] = <nonnull>
argv[1] = <^?>
argv[1] = <^?>
argv[1] = <nonnull>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = </>
argv[1] = </>
argv[1] = </>
argv[1] = </>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <''>
argv[1] = <''>
argv[1] = <''>
argv[1] = <''>
argv[1] = <''>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = </>
1:1
xa|xb|xc
xa|xb|xc
a|b|c
a|b|c
a b c
a b c
xa xb xc
xa xb xc
a|b
b|c
a b
b c
a|b|c
a|b|c
xa|xb|xc
xa|xb|xc
3
3
3
3
3
3
3
3
argv[1] = <echo 1 ; echo 1>
argv[1] = <echo 1 2 ; echo 1>
argv[2] = <2>
argv[1] = <echo 1 ; echo 1>
argv[1] = <echo 1 2 ; echo 1>
argv[2] = <2>
argv[1] = <AB>
argv[1] = <AB>
argv[1] = <A BC D>
argv[1] = <A BC D>
argv[1] = <A BC D>
argv[1] = <A B>
argv[2] = <C D>
argv[1] = <A BC D>
argv[1] = <A BC D>
argv[1] = <fooq//barq/>
argv[1] = <fooq>
argv[2] = <>
argv[3] = <barq>
argv[4] = <>
argv[1] = <foo!//bar!/>
argv[1] = <foo!>
argv[2] = <>
argv[3] = <bar!>
argv[4] = <>
argv[1] = <ooq//arq/>
argv[1] = <ooq>
argv[2] = <>
argv[3] = <arq>
argv[4] = <>
0
bar
after 1
after 2
0
bar
after 1
after 2
a b
ab
cd
ok 1
ok 2
argv[1] = <a b>
argv[2] = <c d>
argv[1] = <a>
argv[2] = <b>
argv[3] = <c>
argv[4] = <d>
argv[1] = <a b c d>
argv[1] = <a b c d>
<1> <2> <3> <4> <5 1>
<1 1> <2> <3> <4> <5>
<11> <2> <3> <4> <51>
<1 1> <2> <3> <4> <5 1>
<11> <2> <3> <4> <51>
<1> <2> <3> <4> <51>
<11> <2> <3> <4> <5>
<1> <2> <3> <4> <51>
<11> <2> <3> <4> <5>
<1> <2> <3> <4> <5foo>
<1> <2> <3> <4> <51>
<1> <2> <3> <4> <5foo>
<1> <2> <3> <4> <51>
<11> <2> <3> <4> <5>
<1> <2> <3> <4> <51>
<11> <2> <3> <4> <5>
<1> <2> <3> <4> <5foo>
second set:
<1 2> <3> <4> <5 1 2>
<1 2 1 2> <3> <4> <5>
<1 21 2> <3> <4> <51 2>
<1 2 1 2> <3> <4> <5 1 2>
<1> <21 2> <3> <4> <51> <2>
<1 2> <3> <4> <51> <2>
<1> <21 2> <3> <4> <5>
<1 2> <3> <4> <51 2>
<1 21 2> <3> <4> <5>
<1 2> <3> <4> <5foo>
<1> <2> <3> <4> <51> <2>
<1> <2> <3> <4> <5foo>
<1 2> <3> <4> <51 2>
<1 21 2> <3> <4> <5>
<1 2> <3> <4> <51 2>
<1 21 2> <3> <4> <5>
<1 2> <3> <4> <5foo>
third set:
"${@:2}a3 a2" a$1 #works as long as $1 and 3 are swapped
set y za3 a2 ax
0
declare -a a=([0]="y" [1]="za3 a2" [2]="ax")
"${@:2}b$1 b2" b3 #fails! why?
set y zbx b2 b3
0
declare -a b=([0]="y" [1]="zbx b2" [2]="b3")
${@:2}c$1 c2 c3 #works as long as quoting omitted
set y zcx c2 c3
0
declare -a c=([0]="y" [1]="zcx" [2]="c2" [3]="c3")
argv[1] = <>
argv[2] = <x>
argv[1] = <>
argv[2] = <x>
1
argv[1] = <>
argv[2] = <>
argv[3] = <x>
argv[1] = <>
argv[2] = <x>
argv[1] = <>
argv[2] = <>
argv[3] = <x>
argv[1] = <>
argv[2] = <x>
argv[1] = <>
argv[2] = <x>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <AwR>
argv[1] = <AwR>
argv[1] = <AR>
argv[1] = <AwR>
argv[1] = <AR>
argv[1] = <AR>
argv[1] = <AwR>
argv[1] = <AwR>
argv[1] = <A^?R>
argv[1] = <AwR>
argv[1] = <AwR>
argv[1] = <A^?R>
<a> <b> <ca> <b> <c-a-b-c>
after 1: IFS -
argv[1] = <a-b-c>
<a> <b> <c> <da> <b c> <d-a-b c-d>
after 2: IFS -
argv[1] = <a-b c-d>
argv[1] = <a>
argv[2] = <b>
argv[3] = <c>
argv[4] = <d>
argv[1] = <a b c d>
argv[1] = <a>
argv[2] = <b>
argv[3] = <c>
argv[4] = <d>
argv[1] = <a b c d>
<3>
<abc>
<def ghi>
<jkl>
<3>
<abc>
<def ghi>
<jkl>
<abc>
<def ghi>
<jkl>
<abc>
<def ghi>
<jkl>
<abcdef ghijkl>
<abc>
<def ghi>
<jkl>
<abc>
<def ghi>
<jkl>
<abc:def ghi:jkl>
<abc>
<def>
<ghi>
<jkl>
<abc>
<def>
<ghi>
<jkl>
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
argv[1] = <3>
argv[2] = <>
argv[1] = <4>
argv[2] = <>
-----
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
argv[1] = <3>
argv[1] = <4>
argv[2] = <>
------
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
argv[1] = <3>
argv[2] = <>
argv[1] = <4>
argv[2] = <>
argv[1] = <5>
argv[2] = <>
argv[1] = <6>
argv[2] = <>
-----
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
argv[1] = <3>
argv[2] = <>
argv[1] = <4>
argv[2] = <>
argv[1] = <5>
argv[2] = <>
argv[1] = <6>
argv[2] = <>
-----
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
<12><12><12><12><12><12>
<12><12><12><12><12><12>
<12><'1''2'>
1 2
1 2
1 2
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <1 2>
argv[1] = <1>
argv[2] = <2>
var=1 2
argv[1] = <1>
argv[2] = <2>
var=1 2
argv[1] = <1 2>
argv[1] = <1 2>