On Mon, 2009-05-25 at 17:45 +0200, Patai Gergely wrote: > > There getArgs and getProgName in System module. If you want > > parse this parameters there is System.Console.GetOpt. > Those will only tell me how my program was called. I want to work with > command lines as data within my program, which is a completely different > thing. > > > All the splitting, escaping and quotes interpretaion is done by > > shell. All what get program when starts is list of > > strings. Program name is actually arbitrary string. (At least > > on unices, it may work a bit differently on windows).
> That's fine, but I'll see the commands yet to be passed to the shell as > strings, and I'd like to know where to split them. Trying to accurately emulate how the shell expands a command line string into program argument strings is not easy. I don't know of any existing Haskell library to do this but POSIX specifies a C function wordexp() which does shell command line expansion. This might be more than you want however as it also expands *.hs wildcards, arithmetic, quote removal, ~user paths, $env vars and (optionally) $(command) substitution. Duncan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe