shc(1) shc Version 2.4 shc(1)
Nov 20, 1991
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 compression and random sort of the script, and on execution
uncompress 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 mm/dd/yy 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
- 1 - Formatted: October 29, 2025
shc(1) shc Version 2.4 shc(1)
Nov 20, 1991
-x comand
eXec command, as a printf format i.e: exec(\\'%s\\',@ARGV);
-l last_option
Last option i.e: --
-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.
- 2 - Formatted: October 29, 2025