[Mono-list] Command line parameters with spaces

Jonathan Pryor jonpryor at vt.edu
Thu Jan 20 17:11:50 EST 2011


On Jan 20, 2011, at 3:42 PM, karolo84 wrote:
> I have tried to figure out the following by myself but so far I wasn't
> lucky: I have a .NET program that takes a SQL query as command line
> argument. If I now run that program under Windows, I simply quote the string
> and everything is fine:
> 
> app.exe "SELECT foo FROM bar WHERE time='20090212';"
> 
> But I have not yet successfully got that running under Linux + Mono.

What shell are you using?!

For the trivial app:

	public static void Main (string[] args)
	{
		for (int i = 0; i < args.Length; ++i)
			Console.WriteLine ("args[{0}]={1}", i, args [i]);
	}

when using bash on Linux and OSX:

	$ mono a.exe "SELECT foo FROM bar WHERE time='20090212';"
	args[0]=SELECT foo FROM bar WHERE time='20090212';

	$ mono a.exe "a b"
	args[0]=a b

	$ mono a.exe "a\ b"
	args[0]=a\ b

	$ mono a.exe 'a b'
	args[0]=a b

	$ mono a.exe ´a b´
	args[0]=´a
	args[1]=b´

In short, I can't reproduce your behavior.  All I can guess is that you're using a shell with bizarre quoting rules...

 - Jon



More information about the Mono-list mailing list