The ultimate echo, actually useful, but no one wants it.

NAME
        echo: echo arguments
SYNOPSIS
echo [-1abCDEeilmNnOqrtuVvwXx] [-B base] [-c cmd] [-d char] [-f file] [-L len] [-o file] [-S voice] [-s char] [args...]
DESCRIPTION
        echo outputs its arguments. It takes the following switches:

        -1              One argument per line.
        -a              Output in ASCII. The default.
-B base Output in given base, 2..32. Unless -u also given, base > 10 shows lowercase.
        -b              Output in binary.
        -C              Don't echo anything, just print the number of fields.
        -c cmd  Run cmd on each argument, replacing $? with the argument itself.
        -D              Output in decimal.
        -d char Field delimiter. Default is end of argument.
        -E              Print to standard error instead of to standard output.
        -e              Allow escape sequences
        -f file Read from file, then from command line (if any).
        -i              Read arguments from standard input.
        -L len  Line width set to len. Default is to ignore line lengths.
        -l              Turn uppercase to lowercase.
        -m              Multi-column output.
        -N              One field per line, numbering each field.
        -n              Suppress newline.
        -O              Output in octal.
        -o file Write to file instead of standard output.
        -q              "Quiet mode:" redirect output to /dev/null if not to a 
file.
-r Print every string that matches each regular expression. Regular expressions cannot contain + or * modifiers. -S voice Send to speaker, having the given voice say it. If voice is a null string, use the default voice.
        -s char Separate fields with char, default space.
        -t              Separate fields with tabs.
-u Convert lowercase to uppercase. With -B, output in uppercase letters for base > 10.
        -V              Strip non-printing characters.
        -v              Make non-printing characters visible.
-w If -l is given, word wrap instead of character wrap. Otherwise, ignored.
        -X              Output in uppercase hexadecimal.
        -x              Output in lowercase hexadecimal.

Test for everyone: write this echo in as little code as possible. C or rc is permitted. The rules: - for C: either Standard C (no other libraries) or only libc (no other Plan 9 libraries) - for rc: only use programs in the core Plan 9 distribution - no programs that I have to get myself
        - match the behavior EXACTLY as above
        - shortest code and fastest run time wins
Winner gets something cool.


Reply via email to