Fixup 'make clean' to properly clean the _install directory
[oweals/busybox.git] / tests / sh.testcases
index 9b5c8da597e2131809d15fc9b7d8ee9086f46af1..aa834d4a20a86dccf3b583ad803b06131c3e10b0 100644 (file)
@@ -28,18 +28,53 @@ if false; then tr 'A-Z' 'a-z'; else echo bar4; fi <foo
 if true || false; then echo foo; else echo bar5; fi
 if true && false; then echo bar6; else echo foo; fi
 
+# basic distinction between local and env variables
+unset FOO
+FOO=bar env | grep FOO
+echo "but not here: $FOO"
+FOO=bar
+env | grep FOO
+echo "yes, here: $FOO"
+FOO=
+echo a $FOO b
+echo "a $FOO b"
+
+# not quite so basic variables.  Credit to Matt Kraai.
+unset FOO
+FOO=bar
+export FOO
+env | grep FOO
+unset FOO
+export FOO=bar
+FOO=baz
+env | grep FOO
+
+# interaction between environment variables and if/then and subshells
+FOO=default
+if true; then FOO=new; fi
+echo $FOO
+FOO=default
+(FOO=bogus)
+echo $FOO
+
+# make sure we can duplicate file descriptors properly
+echo replacement >foo 2>&1
+cat foo
+cat doesnt_exist >foo 2>&1
+tr 'a-z' 'A-Z' <foo
+
 # fairly simple example of hush expanding variables too early
 unset TMP
 rm -f fish
 TMP=fish && >$TMP
 ls fish
 
-# ash, lash, and hush do not create fish; bash and ksh do.
+# ash, lash, and hush do not create wish; bash and ksh do.
 # Thanks to Tapani Tarvainen <tt@mit.jyu.fi> for this stress test.
 unset TMP
-rm -f fish
-TMP=fish >$TMP
-ls fish
+rm -f wish
+TMP=wish >$TMP
+ls wish
 
 # The following example shows that hush's parser is
 # not _really_ Bourne compatible
@@ -51,4 +86,4 @@ PATH=$PATH:.
 echo $a
 
 # assuming the shell wasn't too buggy, clean up the mess
-rm -f a=b fish foo
+rm -f a=b wish fish foo