cssh: C# Shell


The other day I found myself writing a shell script in PHP because I refuse to learn bash’s archaic syntax.  I’m actually a lot happier with PHP as a shell scripting language than a web application language.  However, I’ve always wanted a scripting language with the power of Mono/.NET.

So yesterday I quickly threw together cssh: C# Shell.  You can’t use it as a real shell like bash, but it does allow you to write quick little C# programs that can be run like a script.

Basically the shebang (#!) tells your shell to run your script via cssh.  cssh then strips out the shebang line, prepends a Class and a Method declaration, appends a return 0; as well as a couple closing brackets (}), and executes it in memory using Microsoft.CSharp namespace and Reflection.

In all it took about 60 lines of code to write.  You can download a zip file with the source and a binary if you’re interested.  It should compile and execute just fine under both Mono and Windows/.NET, although Windows lacks shebang script support.

While this was an interesting exercise, I’m not sure its worth pursuing.  C# isn’t a scripting language, so to make it really useful you’d want to make some language modifications.  I think I’m going to take a look at boo or python instead of continuing to develop cssh.  Although I do love my semicolons…