#!/bin/bash # urldecoding function for bash # (c) 2003 GPL by Matthijs Dalhuijsen # check http://www.gnu.org/gpl for details urldecode () { local bf= local cb= local hi=0 local le=0 local x=-1 for p in "$@"; do le="${#p}" while (( x++ < le )); do case "${p:${x}:1}" in "%") if (( hi == 0 )); then (( hi++ )) else bf="${bf}${p:${x}:1}" hi=0 fi ;; "+") bf="${bf} " ;; *) if (( hi == 0 )); then bf="${bf}${p:${x}:1}" fi if (( hi == 2 )); then cb="${cb}${p:${x}:1}" bf="${bf}$(echo -e "\\x${cb}")" hi=0 fi if (( hi == 1 )); then cb=${p:${x}:1} (( hi++ )) fi ;; esac done done echo -n "$bf"; } # Web Server read method url protocol while true; do read line [ "$line" == $'\r' ] && break; done; input=${url/\/?input=/} # input=`echo $input | echo -e "$(sed 's/+/ /g; s/%/\\x/g')"` input=$(urldecode "${input}") echo -ne "HTTP/1.1 200 OK\r\n" echo -ne "Content-Type: text/html\r\n" echo -ne "\r\n" echo "" echo "" echo "Online Bash Runner" echo "" echo "" echo "

Welcome to the Online Bash Runner

" echo "
" echo "" echo "" echo "" echo "
" echo "
"
$input
echo "
" echo "" echo "" exit