[英]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.zip
和deployment.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
命令,並且帶有tail
的unzip
命令就在它的前面。
然后,您可以將壓縮內容附加到此文件,例如:
cat file.zip >> installer.sh
用戶將能夠運行installer.sh
,這將unzip
文件末尾的壓縮內容。
編寫一個自述文件,並要求您的用戶對腳本進行 chmod,然后執行它。
出於安全原因,我希望沒有辦法自動執行這些事情......
編輯:因為 OP 不喜歡它而被否決,非常感謝:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.