shc(1)

NAME
shc - Generic shell script compiler

SYNOPSIS
shc [ -e date ] [ -m addr ] [ -i iopt ] [ -x cmnd ]
[ -l lopt ] [ -vCAh ] -f script

DESCRIPTION
shc obtains a stripped binary executable version of the script specified at command line. Binary version will be named with .x extension, and will usually be shorter than ascii one. If you specify an expiration date with -e, binary will refuse to be executed later. If you specify an email contact direction with -m a message will be displayed saying Contact with me@myhost.mydomain. You can compile whatever interpreted script, but you must supply valid -i, -x and -l options. If you look it closer you will find that shc really not makes an independent executable because it remains needing /bin/sh. It performs encription of the script, and on execution desencripts and sh'xcutes itself with the -c option adding the date expire capability. Perhaps you think it is not a compiler, but it "compiles" a script, and it behaves exactly like the original script. Unfortunatelly it will not give you any speed improvement (perhaps a smaller size). Its main utility is to protect your sh scripts from modification or inspection. You can use it if you wish to distribute your scripts but not wants to be readable. Of course it is not absolutelly safe but it will.

OPTIONS
The command line options are:

-e date
    Expiration date in dd/mm/yyyy format [NO]

-m email_dir
    e-Mail address to contact with at expiration [your provider]

-f script_name
    File name of the script to compile

-i inline_option
    Inline option for this interpreter i.e: -e

-x comand
    eXec command, as a printf format i.e: exec(\\'%s\\',@ARGV);

-l last_option
    Last option i.e: --

-r relax security
    Force a relaxed security. Make a redistributable binary.

-v  Verbose

-C  Copying

-A  Abstract

-h  Help

BUGS
The maximum size of the script that could be compiled is limited by the operating system configuration parameter _SC_ARG_MAX (see sysconf(2) )

AUTHOR
Francisco Rosales <frosal@fi.upm.es>

REPORT BUGS TO
the author.