Shell-Script
使用未知的 perl 位置執行 perl 腳本
我正在開發一個 perl 腳本,期望由對 shell、linux 等知識很少的 Mac 使用者下載,比如辦公室經理和會計師。
下載後,只需通過 GUI 點兩下即可執行腳本。
我的目標是讓不精通技術的使用者盡可能輕鬆地完成這項工作。
我的疑問是:
- 下載腳本後將沒有可執行位
- 如果 perl 執行檔不在預設位置,那麼我應該寫一些東西而不是
#!/usr/bin/perl
. 我應該在那裡寫什麼?除了打開控制台並輸入之外還有其他方法perl ./script.pl
嗎?
或者,您可以
sh
為您處理它:#!/bin/sh exec perl -x "$0" "$@" #!/usr/bin/perl ...
是的,這
sh
和 Perl 都在一個文件中。來自
man perlrun
:-x
告訴 Perl 程序嵌入在更大的不相關文本塊中,例如在郵件消息中。前導垃圾將被丟棄,直到第一行以“#!”開頭 並包含字元串“perl”。將應用該行上的任何有意義的開關。
這種方法只假設 的路徑
sh
(在任何符合 POSIX 的作業系統上都應該是相同的)並且非互動式實例sh
在perl
其PATH
.至於確保腳本設置了可執行位,您始終可以將其作為 tarball 分發,並讓您的使用者從 GUI 中“右鍵點擊,在此處提取”。如果 tarball 包含設置了可執行位的腳本,則提取的腳本應該設置了可執行位。