4 import System(getArgs,getProgName,getEnv,system)
6 -- like print but no annoying "\n"
7 pr :: Show a => a -> IO ()
10 test1 = system "exit 0" >>= pr
11 test2 = system "exit 1" >>= pr
12 test3 = system "exit 2" >>= pr
14 test4 = getArgs >>= pr
15 test5 = getProgName >>= pr
17 -- We want to test getEnv - but there's too much variety in possible
18 -- environments so we pick an env var that doesn't vary too much
19 -- and list every variation we've ever come across.
21 shell <- getEnv "SHELL"
22 let sh = last $ chop '/' shell
25 putStr "getEnv \"SHELL\" returns known shell"
27 putStr "getEnv \"SHELL\" returns unknown shell"
37 chop :: Eq a => a -> [a] -> [[a]]
39 chop sep xs = ys : case zs of
43 (ys,zs) = break (sep ==) xs