cybozuのパッケージインストールシェル見てて知った。でも自分で使う機会なさそう。
例えば何かソースを圧縮したtar.gz を埋め込んでおいて、シェルを実行したら、そのtar.gzを展開して何か操作をする。
- source.sh
この記述方法だとポイントはtailの行数。シェルスクリプトは9行で終わっているので、catで結合されるバイナリファイルは10行以降になるため、tail -n +10 $0 としている。
#!/bin/sh tail -n +10 $0 | tar zxf - ### tailでスクリプト末尾tar.gzを標準出力に出してtarで展開 ### その後 sourceの中をほげほげする処理を書く rm -rf source exit 0
$ cat source.sh source.tar.gz > hoge.sh