SHC is a generic shell script compiler. It takes a script, which is specified on the command line and produces C source code. The generated source code is then compiled and linked to produce a stripped binary. The compiled binary will still be dependent on the shell specified in the first line of the shell code (i.e shebang: #!/bin/sh or such), thus shc does not create completely independent binaries. shc itself is not a compiler such as cc, it rather encodes and encrypts a shell script and generates C source code with the added expiration capability. It then uses the system compiler to compile a stripped binary which behaves exactly like the original script. Upon execution, the compiled binary will decrypt and execute the code with the shells' -c option.
SHC is a generic shell script compiler. It takes a script, which is specified on the command line and produces C source code. The generated source code is then compiled and linked to produce a stripped binary. The compiled binary will still be dependent on the shell specified in the first line of the shell code (i.e shebang: #!/bin/sh or such), thus shc does not create completely independent binaries. shc itself is not a compiler such as cc, it rather encodes and encrypts a shell script and generates C source code with the added expiration capability. It then uses the system compiler to compile a stripped binary which behaves exactly like the original script. Upon execution, the compiled binary will decrypt and execute the code with the shells' -c option.
To install shc, run the following command in macOS terminal (Applications->Utilities->Terminal)
sudo port install shc
To see what files were installed by shc, run:
port contents shc
To later upgrade shc, run:
sudo port selfupdate && sudo port upgrade shc
Reporting an issue on MacPorts Trac
The MacPorts Project uses a system called Trac to file tickets to report bugs and enhancement requests.
Though anyone may search Trac for tickets, you must have a GitHub account in order to login to Trac to create tickets.