ash testsuite: add most of hust tests which pass for ash
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
ce332a23a3
commit
a62bc80571
3
shell/ash_test/ash-heredoc/heredoc_huge.right
Normal file
3
shell/ash_test/ash-heredoc/heredoc_huge.right
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
546ed3f5c81c780d3ab86ada14824237 -
|
||||||
|
546ed3f5c81c780d3ab86ada14824237 -
|
||||||
|
End
|
9
shell/ash_test/ash-heredoc/heredoc_huge.tests
Executable file
9
shell/ash_test/ash-heredoc/heredoc_huge.tests
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
# This creates 120k heredoc
|
||||||
|
echo 'cat <<HERE | md5sum' >"$0.tmp"
|
||||||
|
yes "123456789 123456789 123456789 123456789" | head -3000 >>"$0.tmp"
|
||||||
|
echo 'HERE' >>"$0.tmp"
|
||||||
|
|
||||||
|
yes "123456789 123456789 123456789 123456789" | head -3000 | md5sum
|
||||||
|
. "$0.tmp"
|
||||||
|
rm "$0.tmp"
|
||||||
|
echo End
|
18
shell/ash_test/ash-misc/and-or.right
Normal file
18
shell/ash_test/ash-misc/and-or.right
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
a1
|
||||||
|
a4
|
||||||
|
b1
|
||||||
|
b3
|
||||||
|
b4
|
||||||
|
b6
|
||||||
|
c4
|
||||||
|
c5
|
||||||
|
c7
|
||||||
|
c8
|
||||||
|
ff1
|
||||||
|
ff3
|
||||||
|
ft2
|
||||||
|
ft3
|
||||||
|
tf2
|
||||||
|
tf3
|
||||||
|
tt2
|
||||||
|
tt4
|
34
shell/ash_test/ash-misc/and-or.tests
Executable file
34
shell/ash_test/ash-misc/and-or.tests
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
false || echo a1
|
||||||
|
false && echo a2
|
||||||
|
true || echo a3
|
||||||
|
true && echo a4
|
||||||
|
|
||||||
|
false || echo b1 || echo b2
|
||||||
|
false || echo b3 && echo b4
|
||||||
|
false && echo b5 || echo b6
|
||||||
|
false && echo b7 && echo b8
|
||||||
|
|
||||||
|
true || echo c1 || echo c2
|
||||||
|
true || echo c3 && echo c4
|
||||||
|
true && echo c5 || echo c6
|
||||||
|
true && echo c7 && echo c8
|
||||||
|
|
||||||
|
false || false || echo ff1
|
||||||
|
false || false && echo ff2
|
||||||
|
false && false || echo ff3
|
||||||
|
false && false && echo ff4
|
||||||
|
|
||||||
|
false || true || echo ft1
|
||||||
|
false || true && echo ft2
|
||||||
|
false && true || echo ft3
|
||||||
|
false && true && echo ft4
|
||||||
|
|
||||||
|
true || false || echo tf1
|
||||||
|
true || false && echo tf2
|
||||||
|
true && false || echo tf3
|
||||||
|
true && false && echo tf4
|
||||||
|
|
||||||
|
true || true || echo tt1
|
||||||
|
true || true && echo tt2
|
||||||
|
true && true || echo tt3
|
||||||
|
true && true && echo tt4
|
9
shell/ash_test/ash-misc/assignment1.right
Normal file
9
shell/ash_test/ash-misc/assignment1.right
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
if1:0
|
||||||
|
while1:0
|
||||||
|
until1:0
|
||||||
|
if2:0
|
||||||
|
while2:0
|
||||||
|
until2:0
|
||||||
|
if3:0
|
||||||
|
while3:0
|
||||||
|
until3:0
|
42
shell/ash_test/ash-misc/assignment1.tests
Executable file
42
shell/ash_test/ash-misc/assignment1.tests
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
# Assignments after some keywords should still work
|
||||||
|
|
||||||
|
if a=1 true; then a=1 true; elif a=1 true; then a=1 true; else a=1 true; fi
|
||||||
|
echo if1:$?
|
||||||
|
while a=1 true; do a=1 true; break; done
|
||||||
|
echo while1:$?
|
||||||
|
until a=1 false; do a=1 true; break; done
|
||||||
|
echo until1:$?
|
||||||
|
|
||||||
|
if a=1 true
|
||||||
|
then a=1 true
|
||||||
|
elif a=1 true
|
||||||
|
then a=1 true
|
||||||
|
else a=1 true
|
||||||
|
fi
|
||||||
|
echo if2:$?
|
||||||
|
while a=1 true
|
||||||
|
do a=1 true
|
||||||
|
break
|
||||||
|
done
|
||||||
|
echo while2:$?
|
||||||
|
until a=1 false
|
||||||
|
do a=1 true
|
||||||
|
break
|
||||||
|
done
|
||||||
|
echo until2:$?
|
||||||
|
|
||||||
|
if
|
||||||
|
a=1 true; then
|
||||||
|
a=1 true; elif
|
||||||
|
a=1 true; then
|
||||||
|
a=1 true; else
|
||||||
|
a=1 true; fi
|
||||||
|
echo if3:$?
|
||||||
|
while
|
||||||
|
a=1 true; do
|
||||||
|
a=1 true; break; done
|
||||||
|
echo while3:$?
|
||||||
|
until
|
||||||
|
a=1 false; do
|
||||||
|
a=1 true; break; done
|
||||||
|
echo until3:$?
|
2
shell/ash_test/ash-misc/assignment3.right
Normal file
2
shell/ash_test/ash-misc/assignment3.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Done:0
|
||||||
|
abc=123
|
5
shell/ash_test/ash-misc/assignment3.tests
Executable file
5
shell/ash_test/ash-misc/assignment3.tests
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
# This must be interpreted as assignments
|
||||||
|
a=1 b\
|
||||||
|
=2 c=3
|
||||||
|
echo Done:$?
|
||||||
|
echo abc=$a$b$c
|
1
shell/ash_test/ash-misc/assignment4.right
Normal file
1
shell/ash_test/ash-misc/assignment4.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Done:0
|
3
shell/ash_test/ash-misc/assignment4.tests
Executable file
3
shell/ash_test/ash-misc/assignment4.tests
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
# There was a bug where we misinterpreted assignments after 'do':
|
||||||
|
for i in 1; do eval b=; done
|
||||||
|
echo Done:$?
|
2
shell/ash_test/ash-misc/break1.right
Normal file
2
shell/ash_test/ash-misc/break1.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
A
|
||||||
|
OK:0
|
2
shell/ash_test/ash-misc/break1.tests
Executable file
2
shell/ash_test/ash-misc/break1.tests
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
while true; do echo A; break; echo B; done
|
||||||
|
echo OK:$?
|
3
shell/ash_test/ash-misc/break2.right
Normal file
3
shell/ash_test/ash-misc/break2.right
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
A
|
||||||
|
AA
|
||||||
|
OK:0
|
6
shell/ash_test/ash-misc/break2.tests
Executable file
6
shell/ash_test/ash-misc/break2.tests
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
while true; do
|
||||||
|
echo A
|
||||||
|
while true; do echo AA; break 2; echo BB; done
|
||||||
|
echo B
|
||||||
|
done
|
||||||
|
echo OK:$?
|
2
shell/ash_test/ash-misc/break3.right
Normal file
2
shell/ash_test/ash-misc/break3.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
A
|
||||||
|
OK:0
|
2
shell/ash_test/ash-misc/break3.tests
Executable file
2
shell/ash_test/ash-misc/break3.tests
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
v=break; while true; do echo A; $v; echo B; break; echo C; done
|
||||||
|
echo OK:$?
|
6
shell/ash_test/ash-misc/break4.right
Normal file
6
shell/ash_test/ash-misc/break4.right
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
A
|
||||||
|
AA
|
||||||
|
TRUE
|
||||||
|
A
|
||||||
|
AA
|
||||||
|
OK:0
|
12
shell/ash_test/ash-misc/break4.tests
Executable file
12
shell/ash_test/ash-misc/break4.tests
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
cond=true
|
||||||
|
while $cond; do
|
||||||
|
echo A
|
||||||
|
if test "$cond" = true; then
|
||||||
|
cond='echo TRUE'
|
||||||
|
else
|
||||||
|
cond=false
|
||||||
|
fi
|
||||||
|
while true; do echo AA; continue 2; echo BB; done
|
||||||
|
echo B
|
||||||
|
done
|
||||||
|
echo OK:$?
|
13
shell/ash_test/ash-misc/break5.right
Normal file
13
shell/ash_test/ash-misc/break5.right
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
A
|
||||||
|
B
|
||||||
|
0
|
||||||
|
A:a
|
||||||
|
B
|
||||||
|
D
|
||||||
|
A:b
|
||||||
|
B
|
||||||
|
D
|
||||||
|
A:c
|
||||||
|
B
|
||||||
|
D
|
||||||
|
0
|
4
shell/ash_test/ash-misc/break5.tests
Executable file
4
shell/ash_test/ash-misc/break5.tests
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
while true; do echo A; { echo B; break; echo C; }; echo D; done
|
||||||
|
echo $?
|
||||||
|
for v in a b c; do echo A:$v; (echo B; break; echo C); echo D; done
|
||||||
|
echo $?
|
2
shell/ash_test/ash-misc/builtin1.right
Normal file
2
shell/ash_test/ash-misc/builtin1.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
VARIABLE=export
|
||||||
|
OK:0
|
6
shell/ash_test/ash-misc/builtin1.tests
Executable file
6
shell/ash_test/ash-misc/builtin1.tests
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
# builtins, unlike keywords like "while", can be constructed
|
||||||
|
# with substitutions
|
||||||
|
VARIABLE=export
|
||||||
|
$VARIABLE VARIABLE
|
||||||
|
env | grep ^VARIABLE
|
||||||
|
echo OK:$?
|
22
shell/ash_test/ash-misc/case1.right
Normal file
22
shell/ash_test/ash-misc/case1.right
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
OK_1
|
||||||
|
OK_1
|
||||||
|
OK_21
|
||||||
|
OK_22
|
||||||
|
OK_23
|
||||||
|
OK_31
|
||||||
|
OK_32
|
||||||
|
OK_41
|
||||||
|
OK_42
|
||||||
|
OK_43
|
||||||
|
OK_44
|
||||||
|
OK_51
|
||||||
|
OK_52
|
||||||
|
OK_53
|
||||||
|
OK_sub1
|
||||||
|
OK_sub2
|
||||||
|
OK_sub3
|
||||||
|
OK_sub4
|
||||||
|
OK_sub5
|
||||||
|
OK_sub6
|
||||||
|
OK_esac1
|
||||||
|
Done
|
40
shell/ash_test/ash-misc/case1.tests
Executable file
40
shell/ash_test/ash-misc/case1.tests
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
case w in a) echo SKIP;; w) echo OK_1;; w) echo WRONG;; esac
|
||||||
|
|
||||||
|
case w in
|
||||||
|
a) echo SKIP;;
|
||||||
|
w)echo OK_1 ;;
|
||||||
|
w)
|
||||||
|
echo WRONG
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
t=w
|
||||||
|
case $t in a) echo SKIP;; w) echo OK_21;; w) echo WRONG;; esac;
|
||||||
|
case "$t" in a) echo SKIP;; w) echo OK_22;; w) echo WRONG;; esac;
|
||||||
|
case w in a) echo SKIP;; $t) echo OK_23;; "$t") echo WRONG;; esac;
|
||||||
|
|
||||||
|
case '' in a) echo SKIP;; w) echo WRONG;; *) echo OK_31;; esac;
|
||||||
|
case '' in a) echo SKIP;; '') echo OK_32;; *) echo WRONG;; esac;
|
||||||
|
|
||||||
|
case `echo w` in a) echo SKIP;; w) echo OK_41;; w) echo WRONG;; esac;
|
||||||
|
case "`echo w`" in a) echo SKIP;; w) echo OK_42;; w) echo WRONG;; esac;
|
||||||
|
case `echo w w` in a) echo SKIP;; w) echo WRONG;; 'w w') echo OK_43;; esac;
|
||||||
|
case `echo w w` in a) echo SKIP;; w) echo WRONG;; w*) echo OK_44;; esac;
|
||||||
|
|
||||||
|
case w in `echo w`) echo OK_51;; `echo WRONG >&2`w) echo WRONG;; esac;
|
||||||
|
case w in `echo OK_52 >&2`) echo SKIP;; `echo`w) echo OK_53;; esac;
|
||||||
|
|
||||||
|
# parsing cases in subshells can easily get messy
|
||||||
|
case m in m) echo OK_sub1;; esac
|
||||||
|
case m in (m) echo OK_sub2;; esac
|
||||||
|
(case m in m) echo OK_sub3;; esac)
|
||||||
|
(case m in (m) echo OK_sub4;; esac)
|
||||||
|
(
|
||||||
|
case m in m) echo OK_sub5;; esac
|
||||||
|
)
|
||||||
|
(
|
||||||
|
case m in (m) echo OK_sub6;; esac
|
||||||
|
)
|
||||||
|
(case esac in "esac") echo OK_esac1;; esac)
|
||||||
|
|
||||||
|
echo Done
|
2
shell/ash_test/ash-misc/colon.right
Normal file
2
shell/ash_test/ash-misc/colon.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
0
|
||||||
|
OK: 0
|
5
shell/ash_test/ash-misc/colon.tests
Executable file
5
shell/ash_test/ash-misc/colon.tests
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
false
|
||||||
|
:
|
||||||
|
echo $?
|
||||||
|
(while :; do exit; done)
|
||||||
|
echo OK: $?
|
14
shell/ash_test/ash-misc/compound.right
Normal file
14
shell/ash_test/ash-misc/compound.right
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
new group
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
new group
|
||||||
|
new group
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
21
shell/ash_test/ash-misc/compound.tests
Executable file
21
shell/ash_test/ash-misc/compound.tests
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
echo new group
|
||||||
|
echo 0; { :; }
|
||||||
|
echo 1; { : ;}
|
||||||
|
echo 2; ({ :; })
|
||||||
|
echo 3; ({ : ;})
|
||||||
|
echo 4; ( : )
|
||||||
|
echo 5; ( :; )
|
||||||
|
echo 6; ( : ;)
|
||||||
|
# not sure if POSIX requires these, but bash accepts them ...
|
||||||
|
#echo 7; {( : )}
|
||||||
|
#echo 8; {( :; )}
|
||||||
|
#echo 9; {( : ;)}
|
||||||
|
|
||||||
|
echo new group
|
||||||
|
#echo 0; {(:);}
|
||||||
|
|
||||||
|
echo new group
|
||||||
|
echo 0; (:)
|
||||||
|
echo 1; (:;)
|
||||||
|
echo 2; (:);
|
||||||
|
echo 3; (:;);
|
8
shell/ash_test/ash-misc/continue1.right
Normal file
8
shell/ash_test/ash-misc/continue1.right
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
A:a
|
||||||
|
A:b
|
||||||
|
A:c
|
||||||
|
OK1
|
||||||
|
A:a
|
||||||
|
A:b
|
||||||
|
A:c
|
||||||
|
OK2
|
4
shell/ash_test/ash-misc/continue1.tests
Executable file
4
shell/ash_test/ash-misc/continue1.tests
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
for v in a b c; do echo A:$v; continue 666; done
|
||||||
|
echo OK1
|
||||||
|
for v in a b c; do echo A:$v; continue 666; done
|
||||||
|
echo OK2
|
1
shell/ash_test/ash-misc/continue2.right
Normal file
1
shell/ash_test/ash-misc/continue2.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Ok:1
|
3
shell/ash_test/ash-misc/continue2.tests
Executable file
3
shell/ash_test/ash-misc/continue2.tests
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
e=''
|
||||||
|
(while test $e && exit 1; true; do e=1; continue; done)
|
||||||
|
echo Ok:$?
|
2
shell/ash_test/ash-misc/continue3.right
Normal file
2
shell/ash_test/ash-misc/continue3.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
0
|
||||||
|
0
|
3
shell/ash_test/ash-misc/continue3.tests
Executable file
3
shell/ash_test/ash-misc/continue3.tests
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
# Test that "continue" does affect exitcode (sets to 0)
|
||||||
|
e=''
|
||||||
|
while echo $?; test $e && exit; true; do e=1; false; continue; done
|
1
shell/ash_test/ash-misc/empty_for.right
Normal file
1
shell/ash_test/ash-misc/empty_for.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
OK: 0
|
3
shell/ash_test/ash-misc/empty_for.tests
Executable file
3
shell/ash_test/ash-misc/empty_for.tests
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
false
|
||||||
|
for a in; do echo "HELLO"; done
|
||||||
|
echo OK: $?
|
4
shell/ash_test/ash-misc/empty_for2.right
Normal file
4
shell/ash_test/ash-misc/empty_for2.right
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
PARAM:abc
|
||||||
|
PARAM:d e
|
||||||
|
PARAM:123
|
||||||
|
OK: 0
|
6
shell/ash_test/ash-misc/empty_for2.tests
Executable file
6
shell/ash_test/ash-misc/empty_for2.tests
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
if test $# = 0; then
|
||||||
|
exec "$THIS_SH" $0 abc "d e" 123
|
||||||
|
fi
|
||||||
|
false
|
||||||
|
for v; do echo "PARAM:$v"; done
|
||||||
|
echo OK: $?
|
1
shell/ash_test/ash-misc/exit1.right
Normal file
1
shell/ash_test/ash-misc/exit1.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Once
|
4
shell/ash_test/ash-misc/exit1.tests
Executable file
4
shell/ash_test/ash-misc/exit1.tests
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
trap "echo Not shown" EXIT
|
||||||
|
(exit) # must be silent
|
||||||
|
trap "echo Once; exit" EXIT
|
||||||
|
{ exit; }
|
8
shell/ash_test/ash-misc/for_with_bslashes.right
Normal file
8
shell/ash_test/ash-misc/for_with_bslashes.right
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
a
|
||||||
|
b\c
|
||||||
|
b\\c
|
||||||
|
b"c
|
||||||
|
b'c
|
||||||
|
b$c
|
||||||
|
b`true`c
|
||||||
|
Zero:0
|
10
shell/ash_test/ash-misc/for_with_bslashes.tests
Executable file
10
shell/ash_test/ash-misc/for_with_bslashes.tests
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
# UNFIXED BUG.
|
||||||
|
# commented-out words contain ^C character.
|
||||||
|
# It's a SPECIAL_VAR_SYMBOL, for now hush does not escape it.
|
||||||
|
# When it is fixed, update this test.
|
||||||
|
|
||||||
|
for a in 'a' 'b\c' 'b\\c' 'b"c' "b'c" 'b$c' 'b`true`c' ### 'b#c'
|
||||||
|
do
|
||||||
|
echo $a
|
||||||
|
done
|
||||||
|
echo Zero:$?
|
4
shell/ash_test/ash-misc/for_with_keywords.right
Normal file
4
shell/ash_test/ash-misc/for_with_keywords.right
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
do
|
||||||
|
done
|
||||||
|
then
|
||||||
|
OK: 0
|
2
shell/ash_test/ash-misc/for_with_keywords.tests
Executable file
2
shell/ash_test/ash-misc/for_with_keywords.tests
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
for if in do done then; do echo $if; done
|
||||||
|
echo OK: $?
|
1
shell/ash_test/ash-misc/if_false_exitcode.right
Normal file
1
shell/ash_test/ash-misc/if_false_exitcode.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Ok:0
|
2
shell/ash_test/ash-misc/if_false_exitcode.tests
Executable file
2
shell/ash_test/ash-misc/if_false_exitcode.tests
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
if false; then echo Bad; fi
|
||||||
|
echo Ok:$?
|
7
shell/ash_test/ash-misc/nommu1.right
Normal file
7
shell/ash_test/ash-misc/nommu1.right
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Ok
|
||||||
|
Ok
|
||||||
|
Ok
|
||||||
|
Ok
|
||||||
|
Ok
|
||||||
|
Ok
|
||||||
|
Done
|
12
shell/ash_test/ash-misc/nommu1.tests
Executable file
12
shell/ash_test/ash-misc/nommu1.tests
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
(echo \
|
||||||
|
Ok)
|
||||||
|
( (echo \
|
||||||
|
Ok) )
|
||||||
|
( ( (echo \
|
||||||
|
Ok) ) )
|
||||||
|
|
||||||
|
(echo \Ok)
|
||||||
|
( (echo \Ok) )
|
||||||
|
( ( (echo \Ok) ) )
|
||||||
|
|
||||||
|
echo Done
|
5
shell/ash_test/ash-misc/nommu2.right
Normal file
5
shell/ash_test/ash-misc/nommu2.right
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Ok
|
||||||
|
Ok
|
||||||
|
Ok
|
||||||
|
Ok
|
||||||
|
Done
|
5
shell/ash_test/ash-misc/nommu2.tests
Executable file
5
shell/ash_test/ash-misc/nommu2.tests
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
echo Not shown | if true; then echo $(echo Ok); fi
|
||||||
|
echo Not shown | if true; then echo `echo Ok`; fi
|
||||||
|
echo Not shown | ( if true; then echo $(echo Ok); fi )
|
||||||
|
echo Not shown | ( if true; then echo `echo Ok`; fi )
|
||||||
|
echo Done
|
2
shell/ash_test/ash-misc/nommu3.right
Normal file
2
shell/ash_test/ash-misc/nommu3.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Ok
|
||||||
|
0
|
15
shell/ash_test/ash-misc/nommu3.tests
Executable file
15
shell/ash_test/ash-misc/nommu3.tests
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
func()
|
||||||
|
{
|
||||||
|
while read p; do echo "$p"; done
|
||||||
|
}
|
||||||
|
|
||||||
|
pipe_to_func()
|
||||||
|
{
|
||||||
|
# We had a NOMMU bug which caused "echo Ok |" part to be lost
|
||||||
|
echo Ok | func
|
||||||
|
}
|
||||||
|
|
||||||
|
pipe_to_func | cat
|
||||||
|
echo $?
|
2
shell/ash_test/ash-misc/opts1.right
Normal file
2
shell/ash_test/ash-misc/opts1.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Param1: >-10qwertyuiop<
|
||||||
|
Done
|
5
shell/ash_test/ash-misc/opts1.tests
Executable file
5
shell/ash_test/ash-misc/opts1.tests
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
if test $# = 0; then
|
||||||
|
exec "$THIS_SH" $0 -10qwertyuiop
|
||||||
|
fi
|
||||||
|
echo "Param1: >$1<"
|
||||||
|
echo Done
|
1
shell/ash_test/ash-misc/pid.right
Normal file
1
shell/ash_test/ash-misc/pid.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
0
|
1
shell/ash_test/ash-misc/pid.tests
Executable file
1
shell/ash_test/ash-misc/pid.tests
Executable file
@ -0,0 +1 @@
|
|||||||
|
test `(echo $$)` = `echo $$`; echo $?
|
40
shell/ash_test/ash-misc/pipefail.right
Normal file
40
shell/ash_test/ash-misc/pipefail.right
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Default:
|
||||||
|
true | true:
|
||||||
|
0
|
||||||
|
1
|
||||||
|
true | false:
|
||||||
|
1
|
||||||
|
0
|
||||||
|
false | true:
|
||||||
|
0
|
||||||
|
1
|
||||||
|
exit 2 | exit 3 | exit 4:
|
||||||
|
4
|
||||||
|
0
|
||||||
|
Pipefail on:
|
||||||
|
true | true:
|
||||||
|
0
|
||||||
|
1
|
||||||
|
true | false:
|
||||||
|
1
|
||||||
|
0
|
||||||
|
false | true:
|
||||||
|
1
|
||||||
|
0
|
||||||
|
exit 2 | exit 3 | exit 4:
|
||||||
|
4
|
||||||
|
0
|
||||||
|
Pipefail off:
|
||||||
|
true | true:
|
||||||
|
0
|
||||||
|
1
|
||||||
|
true | false:
|
||||||
|
1
|
||||||
|
0
|
||||||
|
false | true:
|
||||||
|
0
|
||||||
|
1
|
||||||
|
exit 2 | exit 3 | exit 4:
|
||||||
|
4
|
||||||
|
0
|
||||||
|
Done
|
45
shell/ash_test/ash-misc/pipefail.tests
Executable file
45
shell/ash_test/ash-misc/pipefail.tests
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
echo Default:
|
||||||
|
echo "true | true:"
|
||||||
|
true | true; echo $?
|
||||||
|
! true | true; echo $?
|
||||||
|
echo "true | false:"
|
||||||
|
true | false; echo $?
|
||||||
|
! true | false; echo $?
|
||||||
|
echo "false | true:"
|
||||||
|
false | true; echo $?
|
||||||
|
! false | true; echo $?
|
||||||
|
echo "exit 2 | exit 3 | exit 4:"
|
||||||
|
exit 2 | exit 3 | exit 4; echo $?
|
||||||
|
! exit 2 | exit 3 | exit 4; echo $?
|
||||||
|
|
||||||
|
echo Pipefail on:
|
||||||
|
set -o pipefail
|
||||||
|
echo "true | true:"
|
||||||
|
true | true; echo $?
|
||||||
|
! true | true; echo $?
|
||||||
|
echo "true | false:"
|
||||||
|
true | false; echo $?
|
||||||
|
! true | false; echo $?
|
||||||
|
echo "false | true:"
|
||||||
|
false | true; echo $?
|
||||||
|
! false | true; echo $?
|
||||||
|
echo "exit 2 | exit 3 | exit 4:"
|
||||||
|
exit 2 | exit 3 | exit 4; echo $?
|
||||||
|
! exit 2 | exit 3 | exit 4; echo $?
|
||||||
|
|
||||||
|
echo Pipefail off:
|
||||||
|
set +o pipefail
|
||||||
|
echo "true | true:"
|
||||||
|
true | true; echo $?
|
||||||
|
! true | true; echo $?
|
||||||
|
echo "true | false:"
|
||||||
|
true | false; echo $?
|
||||||
|
! true | false; echo $?
|
||||||
|
echo "false | true:"
|
||||||
|
false | true; echo $?
|
||||||
|
! false | true; echo $?
|
||||||
|
echo "exit 2 | exit 3 | exit 4:"
|
||||||
|
exit 2 | exit 3 | exit 4; echo $?
|
||||||
|
! exit 2 | exit 3 | exit 4; echo $?
|
||||||
|
|
||||||
|
echo Done
|
4
shell/ash_test/ash-misc/read.right
Normal file
4
shell/ash_test/ash-misc/read.right
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
read
|
||||||
|
cat
|
||||||
|
echo "REPLY=$REPLY"
|
||||||
|
REPLY=exec <read.tests
|
4
shell/ash_test/ash-misc/read.tests
Executable file
4
shell/ash_test/ash-misc/read.tests
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
exec <read.tests
|
||||||
|
read
|
||||||
|
cat
|
||||||
|
echo "REPLY=$REPLY"
|
1
shell/ash_test/ash-misc/return1.right
Normal file
1
shell/ash_test/ash-misc/return1.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Ok:0
|
4
shell/ash_test/ash-misc/return1.tests
Executable file
4
shell/ash_test/ash-misc/return1.tests
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
echo "true && return; echo Should not be printed" >return_sourced
|
||||||
|
. ./return_sourced
|
||||||
|
rm return_sourced
|
||||||
|
echo Ok:$?
|
6
shell/ash_test/ash-misc/shift.right
Normal file
6
shell/ash_test/ash-misc/shift.right
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
./shift.tests abc d e
|
||||||
|
./shift.tests d e 123
|
||||||
|
./shift.tests d e 123
|
||||||
|
./shift.tests
|
||||||
|
./shift.tests
|
||||||
|
./shift.tests
|
14
shell/ash_test/ash-misc/shift.tests
Executable file
14
shell/ash_test/ash-misc/shift.tests
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
if test $# = 0; then
|
||||||
|
exec "$THIS_SH" $0 abc "d e" 123
|
||||||
|
fi
|
||||||
|
echo $0 $1 $2
|
||||||
|
shift
|
||||||
|
echo $0 $1 $2
|
||||||
|
shift 999
|
||||||
|
echo $0 $1 $2
|
||||||
|
shift 2
|
||||||
|
echo $0 $1 $2
|
||||||
|
shift 2
|
||||||
|
echo $0 $1 $2
|
||||||
|
shift
|
||||||
|
echo $0 $1 $2
|
1
shell/ash_test/ash-misc/sigint1.right
Normal file
1
shell/ash_test/ash-misc/sigint1.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Sending SIGINT to main shell PID
|
41
shell/ash_test/ash-misc/sigint1.tests
Executable file
41
shell/ash_test/ash-misc/sigint1.tests
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
# What should happen if non-interactive shell gets SIGINT?
|
||||||
|
|
||||||
|
(sleep 1; echo Sending SIGINT to main shell PID; exec kill -INT $$) &
|
||||||
|
|
||||||
|
# We create a child which exits with 0 even on SIGINT
|
||||||
|
# (The complex command is necessary only if SIGINT is generated by ^C,
|
||||||
|
# in this testcase even bare "sleep 2" would do because
|
||||||
|
# in the testcase we don't send SIGINT *to the child*...)
|
||||||
|
$THIS_SH -c 'trap "exit 0" SIGINT; sleep 2'
|
||||||
|
|
||||||
|
# In one second, we (main shell) get SIGINT here.
|
||||||
|
# The question is whether we should, or should not, exit.
|
||||||
|
|
||||||
|
# bash will not stop here. It will execute next command(s).
|
||||||
|
|
||||||
|
# The rationale for this is described here:
|
||||||
|
# http://www.cons.org/cracauer/sigint.html
|
||||||
|
#
|
||||||
|
# Basically, bash will not exit on SIGINT immediately if it waits
|
||||||
|
# for a child. It will wait for the child to exit.
|
||||||
|
# If child exits NOT by dying on SIGINT, then bash will not exit.
|
||||||
|
#
|
||||||
|
# The idea is that the following script:
|
||||||
|
# | emacs file.txt
|
||||||
|
# | more cmds
|
||||||
|
# User may use ^C to interrupt editor's ops like search. But then
|
||||||
|
# emacs exits normally. User expects that script doesn't stop.
|
||||||
|
#
|
||||||
|
# This is a nice idea, but detecting "did process really exit
|
||||||
|
# with SIGINT?" is racy. Consider:
|
||||||
|
# | bash -c 'while true; do /bin/true; done'
|
||||||
|
# When ^C is pressed while bash waits for /bin/true to exit,
|
||||||
|
# it may happen that /bin/true exits with exitcode 0 before
|
||||||
|
# ^C is delivered to it as SIGINT. bash will see SIGINT, then
|
||||||
|
# it will see that child exited with 0, and bash will NOT EXIT.
|
||||||
|
|
||||||
|
# Therefore we do not implement bash behavior.
|
||||||
|
# I'd say that emacs need to put itself into a separate pgrp
|
||||||
|
# to isolate shell from getting stray SIGINTs from ^C.
|
||||||
|
|
||||||
|
echo Next command after SIGINT was executed
|
3
shell/ash_test/ash-misc/unicode1.right
Normal file
3
shell/ash_test/ash-misc/unicode1.right
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
1
|
||||||
|
1
|
||||||
|
Ok
|
13
shell/ash_test/ash-misc/unicode1.tests
Executable file
13
shell/ash_test/ash-misc/unicode1.tests
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
# A combining character U+300
|
||||||
|
a=`printf "\xcc\x80"`
|
||||||
|
# Should print 1
|
||||||
|
echo ${#a}
|
||||||
|
|
||||||
|
# A Japanese katakana charachter U+30a3
|
||||||
|
a=`printf "\xe3\x82\xa3"`
|
||||||
|
# Should print 1
|
||||||
|
echo ${#a}
|
||||||
|
|
||||||
|
echo Ok
|
3
shell/ash_test/ash-misc/until1.right
Normal file
3
shell/ash_test/ash-misc/until1.right
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
1
|
||||||
|
1
|
||||||
|
Ok:0
|
11
shell/ash_test/ash-misc/until1.tests
Executable file
11
shell/ash_test/ash-misc/until1.tests
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
x=1
|
||||||
|
until test "$x" = 4; do echo $x; x=4; done
|
||||||
|
|
||||||
|
# We had a bug in multi-line form
|
||||||
|
x=1
|
||||||
|
until test "$x" = 4; do
|
||||||
|
echo $x
|
||||||
|
x=4
|
||||||
|
done
|
||||||
|
|
||||||
|
echo Ok:$?
|
1
shell/ash_test/ash-misc/while1.right
Normal file
1
shell/ash_test/ash-misc/while1.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
OK:0
|
2
shell/ash_test/ash-misc/while1.tests
Executable file
2
shell/ash_test/ash-misc/while1.tests
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
while false; do echo NOT SHOWN; done
|
||||||
|
echo OK:$?
|
2
shell/ash_test/ash-misc/while2.right
Normal file
2
shell/ash_test/ash-misc/while2.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Hello
|
||||||
|
OK:0
|
2
shell/ash_test/ash-misc/while2.tests
Executable file
2
shell/ash_test/ash-misc/while2.tests
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
while echo Hello; false; do echo NOT SHOWN; done
|
||||||
|
echo OK:$?
|
1
shell/ash_test/ash-misc/while4.right
Normal file
1
shell/ash_test/ash-misc/while4.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Ok:0
|
6
shell/ash_test/ash-misc/while4.tests
Executable file
6
shell/ash_test/ash-misc/while4.tests
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
false
|
||||||
|
while false && echo Not reached; do
|
||||||
|
echo BUG
|
||||||
|
break
|
||||||
|
done
|
||||||
|
echo Ok:$?
|
1
shell/ash_test/ash-misc/while_in_subshell.right
Normal file
1
shell/ash_test/ash-misc/while_in_subshell.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
OK: 0
|
2
shell/ash_test/ash-misc/while_in_subshell.tests
Executable file
2
shell/ash_test/ash-misc/while_in_subshell.tests
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
(while true; do exit; done)
|
||||||
|
echo OK: $?
|
2
shell/ash_test/ash-signals/save-ret.right
Normal file
2
shell/ash_test/ash-signals/save-ret.right
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
YEAH
|
||||||
|
0
|
4
shell/ash_test/ash-signals/save-ret.tests
Executable file
4
shell/ash_test/ash-signals/save-ret.tests
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
# make sure we do not corrupt $? across traps
|
||||||
|
trap "echo YEAH; false" USR1
|
||||||
|
kill -USR1 $$
|
||||||
|
echo $?
|
3
shell/ash_test/ash-vars/empty.right
Normal file
3
shell/ash_test/ash-vars/empty.right
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
a b c d e f 1 2 3 4 5 6 7 8 9 0 A B C D E F
|
||||||
|
a b c d e f 1 2 3 4 5 6 7 8 9 0 A B C D E F
|
||||||
|
a b c d e f 1 2 3 4 5 6 7 8 9 0 A B C D E F
|
5
shell/ash_test/ash-vars/empty.tests
Executable file
5
shell/ash_test/ash-vars/empty.tests
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
e=
|
||||||
|
|
||||||
|
echo a b c d e f 1 2 3 4 5 6 7 8 9 0 A B C D E F
|
||||||
|
echo a $e b $e c $e d $e e $e f $e 1 $e 2 $e 3 $e 4 $e 5 $e 6 $e 7 $e 8 $e 9 $e 0 $e A $e B $e C $e D $e E $e F
|
||||||
|
echo $e a $e b $e c $e d $e e $e f $e 1 $e 2 $e 3 $e 4 $e 5 $e 6 $e 7 $e 8 $e 9 $e 0 $e A $e B $e C $e D $e E $e F
|
1
shell/ash_test/ash-vars/glob_and_vars.right
Normal file
1
shell/ash_test/ash-vars/glob_and_vars.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
./glob_and_vars.right ./glob_and_vars.tests
|
2
shell/ash_test/ash-vars/glob_and_vars.tests
Executable file
2
shell/ash_test/ash-vars/glob_and_vars.tests
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
v=.
|
||||||
|
echo $v/glob_and_vars.[tr]*
|
9
shell/ash_test/ash-vars/param_expand_len.right
Normal file
9
shell/ash_test/ash-vars/param_expand_len.right
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
0
|
||||||
|
0
|
||||||
|
1
|
||||||
|
Make sure len parsing doesnt break arg count
|
||||||
|
0 0
|
||||||
|
4 4
|
||||||
|
Testing len op
|
||||||
|
4 3 2 1 0 0
|
||||||
|
0 3 0
|
17
shell/ash_test/ash-vars/param_expand_len.tests
Executable file
17
shell/ash_test/ash-vars/param_expand_len.tests
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
"$THIS_SH" -c 'echo $#'
|
||||||
|
"$THIS_SH" -c 'echo $#' arg0
|
||||||
|
"$THIS_SH" -c 'echo $#' arg0 arg1
|
||||||
|
|
||||||
|
echo Make sure len parsing doesnt break arg count
|
||||||
|
set --
|
||||||
|
echo $# ${#}
|
||||||
|
set -- aaaa bbb cc d
|
||||||
|
echo $# ${#}
|
||||||
|
|
||||||
|
echo Testing len op
|
||||||
|
echo ${#1} ${#2} ${#3} ${#4} ${#5} ${#6}
|
||||||
|
|
||||||
|
unset e
|
||||||
|
f=abc
|
||||||
|
g=
|
||||||
|
echo ${#e} ${#f} ${#g}
|
4
shell/ash_test/ash-vars/param_glob.right
Normal file
4
shell/ash_test/ash-vars/param_glob.right
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
param_glob.tests
|
||||||
|
param_glob.tests
|
||||||
|
param_glob.t*
|
||||||
|
param_glob.t*
|
9
shell/ash_test/ash-vars/param_glob.tests
Executable file
9
shell/ash_test/ash-vars/param_glob.tests
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
if test $# = 0; then
|
||||||
|
exec "$THIS_SH" "$0" 'param_glob.t*'
|
||||||
|
echo NOT SHOWN
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
echo $*
|
||||||
|
echo $@
|
||||||
|
echo "$*"
|
||||||
|
echo "$@"
|
7
shell/ash_test/ash-vars/param_subshell.right
Normal file
7
shell/ash_test/ash-vars/param_subshell.right
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
1=1
|
||||||
|
2=2
|
||||||
|
3=3
|
||||||
|
4=4
|
||||||
|
5=5
|
||||||
|
6=6
|
||||||
|
7=7
|
15
shell/ash_test/ash-vars/param_subshell.tests
Executable file
15
shell/ash_test/ash-vars/param_subshell.tests
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
if test $# = 0; then
|
||||||
|
"$THIS_SH" "$0" 1 2 3 4 5 6 7 8 9
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
echo 1=$1
|
||||||
|
{ echo 2=$2; }
|
||||||
|
{ echo 3=$3; } &
|
||||||
|
# cant use usleep as it isnt standard in $PATH --
|
||||||
|
# we fail when testing busybox compiled solely as "hush"
|
||||||
|
wait
|
||||||
|
( echo 4=$4 )
|
||||||
|
( echo 5=$5 ) &
|
||||||
|
wait
|
||||||
|
true | echo 6=$6 | cat
|
||||||
|
true | { echo 7=$7; } | cat
|
6
shell/ash_test/ash-vars/star.right
Normal file
6
shell/ash_test/ash-vars/star.right
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
.1.
|
||||||
|
.abc.
|
||||||
|
.d.
|
||||||
|
.e.
|
||||||
|
.f.
|
||||||
|
.1 abc d e f.
|
8
shell/ash_test/ash-vars/star.tests
Executable file
8
shell/ash_test/ash-vars/star.tests
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
if test $# = 0; then
|
||||||
|
exec "$THIS_SH" star.tests 1 abc 'd e f'
|
||||||
|
fi
|
||||||
|
# 'd e f' should be split into 3 separate args:
|
||||||
|
for a in $*; do echo ".$a."; done
|
||||||
|
|
||||||
|
# must produce .1 abc d e f.
|
||||||
|
for a in "$*"; do echo ".$a."; done
|
5
shell/ash_test/ash-vars/var_expand_in_assign.right
Normal file
5
shell/ash_test/ash-vars/var_expand_in_assign.right
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
. .
|
||||||
|
.abc d e.
|
||||||
|
.abc d e.
|
||||||
|
.abc d e.
|
||||||
|
.abc d e.
|
15
shell/ash_test/ash-vars/var_expand_in_assign.tests
Executable file
15
shell/ash_test/ash-vars/var_expand_in_assign.tests
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
if test $# = 0; then
|
||||||
|
exec "$THIS_SH" "$0" abc "d e"
|
||||||
|
fi
|
||||||
|
|
||||||
|
space=' '
|
||||||
|
echo .$space.
|
||||||
|
|
||||||
|
a=$*
|
||||||
|
echo .$a.
|
||||||
|
a=$@
|
||||||
|
echo .$a.
|
||||||
|
a="$*"
|
||||||
|
echo .$a.
|
||||||
|
a="$@"
|
||||||
|
echo .$a.
|
3
shell/ash_test/ash-vars/var_expand_in_redir.right
Normal file
3
shell/ash_test/ash-vars/var_expand_in_redir.right
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
TEST1
|
||||||
|
TEST2
|
||||||
|
TEST3
|
13
shell/ash_test/ash-vars/var_expand_in_redir.tests
Executable file
13
shell/ash_test/ash-vars/var_expand_in_redir.tests
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
if test $# = 0; then
|
||||||
|
exec "$THIS_SH" "$0" abc "d e"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo TEST1 >"$1.out"
|
||||||
|
echo TEST2 >"$2.out"
|
||||||
|
# bash says: "$@.out": ambiguous redirect
|
||||||
|
# ash handles it as if it is '$*' - we do the same
|
||||||
|
echo TEST3 >"$@.out"
|
||||||
|
|
||||||
|
cat abc.out "d e.out" "abc d e.out"
|
||||||
|
|
||||||
|
rm abc.out "d e.out" "abc d e.out"
|
9
shell/ash_test/ash-vars/var_expand_on_ifs.right
Normal file
9
shell/ash_test/ash-vars/var_expand_on_ifs.right
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
1 a b c
|
||||||
|
2 a + b c
|
||||||
|
3 a b c
|
||||||
|
4 a b c
|
||||||
|
5 a b c
|
||||||
|
6 a b + c
|
||||||
|
7 a b c
|
||||||
|
8 a b c
|
||||||
|
9 a b c
|
11
shell/ash_test/ash-vars/var_expand_on_ifs.tests
Executable file
11
shell/ash_test/ash-vars/var_expand_on_ifs.tests
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
b=' b '
|
||||||
|
e=''
|
||||||
|
echo 1 a $b c
|
||||||
|
echo 2 a +$b c
|
||||||
|
echo 3 a $e$b c
|
||||||
|
echo 4 a "$e"$b c
|
||||||
|
echo 5 a ""$b c
|
||||||
|
echo 6 a $b+ c
|
||||||
|
echo 7 a $b$e c
|
||||||
|
echo 8 a $b"$e" c
|
||||||
|
echo 9 a $b"" c
|
6
shell/ash_test/ash-vars/var_in_pipes.right
Normal file
6
shell/ash_test/ash-vars/var_in_pipes.right
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
b=1
|
||||||
|
b=2
|
||||||
|
b=3
|
||||||
|
b=4
|
||||||
|
b=5
|
||||||
|
b=6
|
7
shell/ash_test/ash-vars/var_in_pipes.tests
Executable file
7
shell/ash_test/ash-vars/var_in_pipes.tests
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
b=1 env | grep ^b=
|
||||||
|
true | b=2 env | grep ^b=
|
||||||
|
a=1 true | b=3 env | grep ^b=
|
||||||
|
|
||||||
|
(b=4 env) | grep ^b=
|
||||||
|
(true | b=5 env) | grep ^b=
|
||||||
|
(a=1 true | b=6 env) | grep ^b=
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user