Shell Programming with Bourne shell
- test [ ]
- 
Bourne shell constructs
- source filename [arguments] or . filename [arguments]
- while list do list done 
- for name [ in word; ] do list ; done 
- case word in [ pattern [ | pattern ] ... ) list ;; ] ... esac
- &&     logical AND
- ||          logical OR 
-  { list; }  group commands
-  ( list )  run commands in a sub-shell
- trap [arg] [sigspec]
- comment #
- null command :
Chebucto CGI shell program standard preprocessing
Please note: formatting gets lost with the HTML display.
- Bourne shell header
- !/bin/sh
 
- Redirect error output to a file
- exec 2>>/ccn/logs/test.`date +%y%m%d`
- Read system variables
- [ -f /etc/csuite.conf ] && . /etc/csuite.conf &&
 [ -f "$CS_VARS1" ] && . $CS_VARS1 || {
 echo "<h1>ERROR: could not find system variable file.</h1>"
 exit 1
 }
 
- Path specification
- PATH=$SYSPATH; export PATH
- PATH=$CGI_PATH; export PATH 
- HTML header specification
- echo "Content-type: text/html"
 echo
 
- # To report environment and exit
- #
 #[ -f $CS_CGI_LIB/cgi-env ] && . $CS_CGI_LIB/cgi-env && read line &&
 #echo $line | sed 's/&/\
 #/g' && exit 1
 
- # To check remote address
- #if [ -z "$REMOTE_ADDR" ]; then
 #        echo "<h1>ERROR: missing remote address...who are you!<h1>"
 #        exit 1
 #fi
 
- # to process QUERY_STRING
- [ -n "QUERY_STRING" ] && eval `clean-qs "$QUERY_STRING"` 
 
- # to process form fields
- if [ "$REQUEST_METHOD" = POST ] && [ "$CONTENT_LENGTH" -gt 0 ]
 then
 eval `dd ibs=$CONTENT_LENGTH count=1 2>/dev/null | clean-post`
 fi
 
- # for verbose error output
- #set -x
Programs called: (you must be logged into CCN to see these files)
- /etc/csuite.conf
- /ccn/lib/vars1
- clean-qs
- clean-post