スクリプトコンパイラ
2017/03/31
概要
ある処理をユーザにさせたいが、処理の内容は見せたくない。
「プログラムを作ればよかろう」と思うのだが、
- シェルスクリプトで足りる
- コマンドはわかるが、内部でどのような処理をしているのかわからない
などいろいろな事情がある。できれば追求しないでほしい。
インストール
Debian8Linux(Jessie)に標準パッケージとして便利なツールが用意されている。
apt-get install shc -y
使ってみる
sampleをコンパイルすると実行可能ファイルsample.xが生成される。
sampleからC言語化したソースsample.x.cが生成される。
実行環境が現環境と異なる場合は、クロスコンパイラでsample.x.cをコンパイルする。
#スクリプトsampleを作る
echo '#!/bin/bash' > sample
echo 'echo "The quick brown fox jumps over the lazy dog."' >> sample
chmod 755 sample
#sample.shを実行
./sample
#sample.shをコンパイル
shc -f sample
#ロードモジュールsample.xを実行
./sample.x
1行スクリプト
1行スクリプトならshcに直書きしてもいい。
#スクリプトaを作る
echo '#!/bin/bash' > a
shc -x 'ls -la' -f a
./a.x