rm shell_test_$$ 2>/dev/null
var=bad
>shell_test_$$ var=ok
echo "Test 0:  var:$var"
test -f shell_test_$$ && echo "File created:ok"

rm shell_test_$$ 2>/dev/null
var=bad
var=ok >shell_test_$$
echo "Test 1:  var:$var"
test -f shell_test_$$ && echo "File created:ok"

rm shell_test_$$ 2>/dev/null
var=ok
true | var=bad >shell_test_$$
echo "Test 2:  var:$var"
test -f shell_test_$$ && echo "File created:ok"

rm shell_test_$$ 2>/dev/null
var=bad
{ var=ok >shell_test_$$; }
echo "Test 3:  var:$var"
test -f shell_test_$$ && echo "File created:ok"

rm shell_test_$$ 2>/dev/null
var=ok
{ var=bad >shell_test_$$; } &
# cant use usleep as it isnt standard in $PATH --
# we fail when testing busybox compiled solely as "hush"
wait
echo "Test 4:  var:$var"
test -f shell_test_$$ && echo "File created:ok"

rm shell_test_$$ 2>/dev/null
var=ok
( var=bad >shell_test_$$ )
echo "Test 5:  var:$var"
test -f shell_test_$$ && echo "File created:ok"

rm shell_test_$$ 2>/dev/null