簡體   English   中英

將 shell 腳本和 zip 文件組合成一個可執行文件以進行部署

[英]Combine a shell script and a zip file into a single executable for deployment

我有兩個要部署的文件,

1) deploymentpackage.zip -> 它包含帶有少量shell 腳本的數據庫包。

2) deployment.sh -> 它是主要的 shell 腳本,首先解壓縮 deploymentpackage.zip,然后執行其中的 shell 文件列表。

它按預期工作。

但我需要的是,我需要將 zip 文件制作為可執行文件,這樣我就不想將deploymentpackage.zipdeployment.sh都交付給客戶端。

那么是否有可能使deploymentpackage.zip成為可執行文件,這樣我就不想擁有另一個腳本 deployment.sh。

預期:運行此deploymentpackage.zip應解壓縮同一文件並運行其中的腳本列表。

如果可以假設將運行腳本的用戶具有unzip實用程序,那么您可以創建如下腳本:

#!/usr/bin/env bash

# commands that you need to do ...
# ...

unzip <(tail -n +$((LINENO + 2)) "$0")
exit

確保腳本在exit行的末尾有換行符\n 並且,重要的是腳本的最后一行是exit命令,並且帶有tailunzip命令就在它的前面。

然后,您可以將壓縮內容附加到此文件,例如:

cat file.zip >> installer.sh

用戶將能夠運行installer.sh ,這將unzip文件末尾的壓縮內容。

編寫一個自述文件,並要求您的用戶對腳本進行 chmod,然后執行它。

出於安全原因,我希望沒有辦法自動執行這些事情......

編輯:因為 OP 不喜歡它而被否決,非常感謝:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM