Unix doesn't support spaces in filenames

I was creating a job on my Linux-based Jenkins server today, when I encountered an error with a Python virtual environment. It turned out the problem was that the Jenkins job had a name with a space in it, which means the workspace had a name with a space in it, which means the virtualenv had a name with a space in it, which means the scripts created in that virtualenv had a hash-bang with space in it... and bash doesn't support hash-bangs with spaces in the interpreter path.

Consider this simple example. There appears to be no specification for the hashbang, but after some searching, I did find a page that indicates there is no supported mechanism for specifying a space in the interpreter name.

That's a shame. That limitation then bleeds through to almost every other aspect in Unix programming that it basically means Unix does not support spaces in filenames.
Written on July 19, 2011