Home Page Home Page
 Home | Software Development | System/Network Administration | Corporate Services | Resources | About Us
Monthly Server Management One-time Server Services Other Services
Network Administration Network Monitoring Network Security High Availability Load Balancing Data Backup and Recovery
Linux HOWTOs Linux Guides New RFCs Vulnerability list
Partners Careers Site Map
To Do List

Appendix P. To Do List

  • A comprehensive survey of incompatibilities between Bash and the classic Bourne shell.

  • Same as above, but for the Korn shell (ksh).

  • A primer on CGI programming, using Bash.

    Here's a simple CGI script to get you started.

    Example P-1. Print the server environment

    #!/bin/bash
    # May have to change the location for your site.
    # (At the ISP's servers, Bash may not be in the usual place.)
    # Other places: /usr/bin or /usr/local/bin
    # Might even try it without any path in sha-bang.
    
    # test-cgi.sh
    # by Michael Zick
    # Used with permission
    
    
    # Disable filename globbing.
    set -f
    
    # Header tells browser what to expect.
    echo Content-type: text/plain
    echo
    
    echo CGI/1.0 test script report:
    echo
    
    echo environment settings:
    set
    echo
    
    echo whereis bash?
    whereis bash
    echo
    
    
    echo who are we?
    echo ${BASH_VERSINFO[*]}
    echo
    
    echo argc is $#. argv is "$*".
    echo
    
    # CGI/1.0 expected environment variables.
    
    echo SERVER_SOFTWARE = $SERVER_SOFTWARE
    echo SERVER_NAME = $SERVER_NAME
    echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE
    echo SERVER_PROTOCOL = $SERVER_PROTOCOL
    echo SERVER_PORT = $SERVER_PORT
    echo REQUEST_METHOD = $REQUEST_METHOD
    echo HTTP_ACCEPT = "$HTTP_ACCEPT"
    echo PATH_INFO = "$PATH_INFO"
    echo PATH_TRANSLATED = "$PATH_TRANSLATED"
    echo SCRIPT_NAME = "$SCRIPT_NAME"
    echo QUERY_STRING = "$QUERY_STRING"
    echo REMOTE_HOST = $REMOTE_HOST
    echo REMOTE_ADDR = $REMOTE_ADDR
    echo REMOTE_USER = $REMOTE_USER
    echo AUTH_TYPE = $AUTH_TYPE
    echo CONTENT_TYPE = $CONTENT_TYPE
    echo CONTENT_LENGTH = $CONTENT_LENGTH
    
    exit 0
    
    # Here document to give short instructions.
    :<<-'_test_CGI_'
    
    1) Drop this in your http://domain.name/cgi-bin directory.
    2) Then, open http://domain.name/cgi-bin/test-cgi.sh.
    
    _test_CGI_

Any volunteers?