2010-05-17 120 views
3
#!/usr/bin/perl 

這是我最近寫很多腳本的shebang線。便攜式shebang線

硬編碼二進制文件的路徑似乎可能會產生一些問題。例如,如果我的一個用戶將Perl安裝在/ something_else/bin上,那麼他們將不得不更改所有shebang。

我見過一些工具會自動替換shebang,但我想知道是否有更簡單的東西。

回答

11

env(1)

#!/usr/bin/env perl 
+0

什麼是/ usr/bin/env是他們的系統上的其他位置? – Mike 2010-05-17 00:25:09

+1

那麼它很可能會在* /以及/ usr/bin中。 – 2010-05-17 00:30:16

+0

你* *可能只是使用「#!perl」的「#!env perl」,並依賴於設置的路徑(但我不喜歡它)。 – 2010-05-17 00:31:58

1

對於奇數嵌入式系統中的env不是在/ usr/bin中/ ENV(如NAS設備運行funplug等),這可能會奏效。基於的ActivePerl/DOS trick

#!/bin/sh 
exec perl -x -S "$0" "[email protected]" 
#!perl 
print "hello";