

Webserver in bash (2007) - soundsop
http://paulbuchheit.blogspot.ca/2007/04/webserver-in-bash.html

======
frewsxcv
Hardly implemented in Bash, it uses nc. I have a friend who implemented using
no external binaries in Bash. I'll ask him and see if I can get it

EDIT: I think this is it: [http://ur1.ca/f2ozi](http://ur1.ca/f2ozi)

~~~
M4v3R
It is a convention that when you say "written in bash" it means "using bash
language and standard *nix binaries". Bash alone can't do anything, nearly
every keyword in it is actually a binary, including "echo", "true" and "false"
or "[" used in if statements, which you can usually find in /bin or /usr/bin.
You couln't write simplest bash scripts without using any binaries.

Netcat (nc) is built in to nearly every system that has bash. Wget and Curl on
the other hand, are not.

~~~
krunaldo
Wrong!

echo, true, false and [ are builtins in bash and are in the binary. You can
even do TCP/UDP through bash by using the pretend redirect files
/dev/(tcp|udp)/$host/$port.

curl or wget exists on most systems by default in a minimal installation now
days, nc does not, but if you run a normal installation you will get it
though.

~~~
JosephRedfern

       josephredfern@ubuntu:~$ which [
       /usr/bin/[

~~~
Daviey
Use 'type', not 'which'

------
1337p337
Fun times in bash, but very boring in the Inferno shell:

listen -A 'tcp!*!9000' { {req := "{sed '/^\r$/q'}; echo 'HTTP status and
headers elided'; echo $req} & }

------
JeremyMorgan
I was just thinking about this the other day and wondering if anyone had tried
it yet. Too lazy to look for it.

Throw a way to do some real routing in there and you might be on to something.
It's an interesting idea, with the trends of blogs (like mine even) going to
octopress, simplifying the serving of static text is greatly beneficial.

------
softbuilder
If you're on OS X, change the netcat command to: nc -l localhost 9000

