forever.sh - should keep a process alive forever
By quite, you mean quiet, I think.  You also have a typo with "runnig".

The script would be better self-documented if you put the about and help functions first.

In help, instead of echoing $1, which may be a path, it would be more conventional to echo just the basename.

It would be more elegant for the respawn function to accept the command as a parameter rather than using the $myprocess global variable.  "Process", to me, implies a particular instance, i.e. a running program with a PID, so I'd rename myprocess to command.  You only need to execute date if you're actually going to print a log message.  I'd rearrange the conditions to emphasize how to exit the loop and to reduce nesting.

respawn() {
    command="$1"
    while true; do
        $command
        exit_code=$?

        if [ $exit_code -eq 0 -a $force -ne 1 ]; then
            break
        elif [ $quiet -ne 1 ]; then
            echo "`date +"%Y-%m-%dT%H:%M:%S%z"` | service $command exited with code $?. Restarting after ${timeout}s." &gt;&amp;2
        fi
        sleep $timeout
    done
}




In the argument parser, the --help and the -h conditions are identical.  You should write

case "$1" in
    "--help"|"-h")
        help "$0"
        break
        …


Note that double-quoting variables is a good habit.

I don't believe that the [[ $2 =~ '^[0-9]+$' ]] test is available in traditional Bourne shell.  If portability is a concern, you could write the not-quite-equivalent test

case "$2" in
    [0-9]*) timeout=$2 ; shift
    ;;
esac
shift